<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You 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

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

-->
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-box-parent</artifactId>
    <version>3.22.4</version>
  </parent>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-box</artifactId>
  <version>3.22.4</version>
  <name>Camel :: Box :: Component</name>
  <description>Camel Box component</description>
  <licenses>
    <license>
      <name>Apache-2.0</name>
      <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>
  <properties>
    <schemeName>box</schemeName>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <componentPackage>org.apache.camel.component.box</componentPackage>
    <componentName>Box</componentName>
    <outPackage>org.apache.camel.component.box.internal</outPackage>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  </properties>
  <dependencies>
    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-support</artifactId>
      <version>3.22.4</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-box-api</artifactId>
      <version>3.22.4</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>com.box</groupId>
      <artifactId>box-java-sdk</artifactId>
      <version>2.58.0</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient</artifactId>
      <version>4.5.14</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.jsoup</groupId>
      <artifactId>jsoup</artifactId>
      <version>1.15.3</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.36</version>
      <scope>compile</scope>
    </dependency>
  </dependencies>
  <build>
    <defaultGoal>install</defaultGoal>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.camel</groupId>
          <artifactId>camel-api-component-maven-plugin</artifactId>
          <version>${project.version}</version>
          <configuration>
            <scheme>${schemeName}</scheme>
            <componentName>${componentName}</componentName>
            <componentPackage>${componentPackage}</componentPackage>
            <outPackage>${outPackage}</outPackage>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
      </plugin>
      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
      </plugin>
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <argLine>-Xshare:off</argLine>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-api-component-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>generate-test-component-classes</id>
            <goals>
              <goal>fromApis</goal>
            </goals>
            <configuration>
              <apis>
                <api>
                  <apiName>collaborations</apiName>
                  <proxyClass>org.apache.camel.component.box.api.BoxCollaborationsManager</proxyClass>
                  <fromJavasource />
                  <producerOnly>true</producerOnly>
                  <aliases>
                    <alias>
                      <methodPattern>addFolderCollaboration</methodPattern>
                      <methodAlias>add</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>addFolderCollaborationByEmail</methodPattern>
                      <methodAlias>addByEmail</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>deleteCollaboration</methodPattern>
                      <methodAlias>delete</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>getFolderCollaborations</methodPattern>
                      <methodAlias>collaborations</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>getPendingCollaborations</methodPattern>
                      <methodAlias>pendingCollaborations</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>getCollaborationInfo</methodPattern>
                      <methodAlias>info</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>updateCollaborationInfo</methodPattern>
                      <methodAlias>updateInfo</methodAlias>
                    </alias>
                  </aliases>
                </api>
                <api>
                  <apiName>comments</apiName>
                  <proxyClass>org.apache.camel.component.box.api.BoxCommentsManager</proxyClass>
                  <fromJavasource />
                  <producerOnly>true</producerOnly>
                  <aliases>
                    <alias>
                      <methodPattern>addFileComment</methodPattern>
                      <methodAlias>add</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>changeCommentMessage</methodPattern>
                      <methodAlias>updateMessage</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>deleteComment</methodPattern>
                      <methodAlias>delete</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>getCommentInfo</methodPattern>
                      <methodAlias>info</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>getFileComments</methodPattern>
                      <methodAlias>comments</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>replyToComment</methodPattern>
                      <methodAlias>reply</methodAlias>
                    </alias>
                  </aliases>
                </api>
                <api>
                  <apiName>event-logs</apiName>
                  <proxyClass>org.apache.camel.component.box.api.BoxEventLogsManager</proxyClass>
                  <fromJavasource />
                  <producerOnly>true</producerOnly>
                  <aliases>
                    <alias>
                      <methodPattern>getEnterpriseEvents</methodPattern>
                      <methodAlias>events</methodAlias>
                    </alias>
                  </aliases>
                  <nullableOptions>
                    <nullableOption>position</nullableOption>
                    <nullableOption>types</nullableOption>
                  </nullableOptions>
                </api>
                <api>
                  <apiName>files</apiName>
                  <proxyClass>org.apache.camel.component.box.api.BoxFilesManager</proxyClass>
                  <fromJavasource />
                  <producerOnly>true</producerOnly>
                  <aliases>
                    <alias>
                      <methodPattern>uploadFile</methodPattern>
                      <methodAlias>upload</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>downloadFile</methodPattern>
                      <methodAlias>download</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>copyFile</methodPattern>
                      <methodAlias>copy</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>moveFile</methodPattern>
                      <methodAlias>move</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>renameFile</methodPattern>
                      <methodAlias>rename</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>createFileSharedLink</methodPattern>
                      <methodAlias>link</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>deleteFile</methodPattern>
                      <methodAlias>delete</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>uploadNewFileVersion</methodPattern>
                      <methodAlias>uploadVersion</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>promoteFileVersion</methodPattern>
                      <methodAlias>promoteVersion</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>getFileVersions</methodPattern>
                      <methodAlias>versions</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>downloadPreviousFileVersion</methodPattern>
                      <methodAlias>downloadVersion</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>deleteFileVersion</methodPattern>
                      <methodAlias>deleteVersion</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>getFileInfo</methodPattern>
                      <methodAlias>info</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>updateFileInfo</methodPattern>
                      <methodAlias>updateInfo</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>createFileMetadata</methodPattern>
                      <methodAlias>createMetadata</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>getFileMetadata</methodPattern>
                      <methodAlias>metadata</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>updateFileMetadata</methodPattern>
                      <methodAlias>updateMetadata</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>deleteFileMetadata</methodPattern>
                      <methodAlias>deleteMetadata</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>getDownloadUrl</methodPattern>
                      <methodAlias>url</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>getPreviewLink</methodPattern>
                      <methodAlias>preview</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>getFileThumbnail</methodPattern>
                      <methodAlias>thumbnail</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>checkUpload</methodPattern>
                      <methodAlias>canUpload</methodAlias>
                    </alias>
                  </aliases>
                  <nullableOptions>
                    <nullableOption>fields</nullableOption>
                    <nullableOption>created</nullableOption>
                    <nullableOption>modified</nullableOption>
                    <nullableOption>size</nullableOption>
                    <nullableOption>fileSize</nullableOption>
                    <nullableOption>rangeStart</nullableOption>
                    <nullableOption>rangeEnd</nullableOption>
                    <nullableOption>listener</nullableOption>
                    <nullableOption>fileSize</nullableOption>
                    <nullableOption>newName</nullableOption>
                    <nullableOption>unshareDate</nullableOption>
                    <nullableOption>permissions</nullableOption>
                    <nullableOption>typeName</nullableOption>
                    <nullableOption>check</nullableOption>
                  </nullableOptions>
                </api>
                <api>
                  <apiName>folders</apiName>
                  <proxyClass>org.apache.camel.component.box.api.BoxFoldersManager</proxyClass>
                  <producerOnly>true</producerOnly>
                  <fromJavasource />
                  <aliases>
                    <alias>
                      <methodPattern>getRootFolder</methodPattern>
                      <methodAlias>root</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>createFolder</methodPattern>
                      <methodAlias>create</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>copyFolder</methodPattern>
                      <methodAlias>copy</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>moveFolder</methodPattern>
                      <methodAlias>move</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>renameFolder</methodPattern>
                      <methodAlias>rename</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>createFolderSharedLink</methodPattern>
                      <methodAlias>link</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>deleteFolder</methodPattern>
                      <methodAlias>delete</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>getFolder</methodPattern>
                      <methodAlias>folder</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>getFolderInfo</methodPattern>
                      <methodAlias>info</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>getFolderItems</methodPattern>
                      <methodAlias>items</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>updateFolderInfo</methodPattern>
                      <methodAlias>updateInfo</methodAlias>
                    </alias>
                  </aliases>
                  <nullableOptions>
                    <nullableOption>offset</nullableOption>
                    <nullableOption>limit</nullableOption>
                    <nullableOption>fields</nullableOption>
                    <nullableOption>newName</nullableOption>
                  </nullableOptions>
                </api>
                <api>
                  <apiName>groups</apiName>
                  <proxyClass>org.apache.camel.component.box.api.BoxGroupsManager</proxyClass>
                  <fromJavasource />
                  <producerOnly>true</producerOnly>
                  <aliases>
                    <alias>
                      <methodPattern>createGroup</methodPattern>
                      <methodAlias>create</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>deleteGroup</methodPattern>
                      <methodAlias>delete</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>getAllGroups</methodPattern>
                      <methodAlias>groups</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>getGroupInfo</methodPattern>
                      <methodAlias>info</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>addGroupMembership</methodPattern>
                      <methodAlias>addMembership</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>deleteGroupMembership</methodPattern>
                      <methodAlias>deleteMembership</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>getGroupMemberships</methodPattern>
                      <methodAlias>memberships</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>getGroupMembershipInfo</methodPattern>
                      <methodAlias>membershipInfo</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>updateGroupMembershipInfo</methodPattern>
                      <methodAlias>updateMembershipInfo</methodAlias>
                    </alias>
                  </aliases>
                  <nullableOptions>
                    <nullableOption>role</nullableOption>
                    <nullableOption>description</nullableOption>
                    <nullableOption>provenance</nullableOption>
                    <nullableOption>externalSyncIdentifier</nullableOption>
                    <nullableOption>invitabilityLevel</nullableOption>
                    <nullableOption>memberViewabilityLevel</nullableOption>
                  </nullableOptions>
                </api>
                <api>
                  <apiName>events</apiName>
                  <proxyClass>org.apache.camel.component.box.api.BoxEventsManager</proxyClass>
                  <fromJavasource>
                    <excludeMethods>stopListening</excludeMethods>
                  </fromJavasource>
                  <consumerOnly>true</consumerOnly>
                  <excludeConfigNames>listener</excludeConfigNames>
                  <nullableOptions>
                    <nullableOption>startingPosition</nullableOption>
                  </nullableOptions>
                </api>
                <api>
                  <apiName>search</apiName>
                  <proxyClass>org.apache.camel.component.box.api.BoxSearchManager</proxyClass>
                  <fromJavasource />
                  <producerOnly>true</producerOnly>
                  <aliases>
                    <alias>
                      <methodPattern>searchFolder</methodPattern>
                      <methodAlias>search</methodAlias>
                    </alias>
                  </aliases>
                </api>
                <api>
                  <apiName>tasks</apiName>
                  <proxyClass>org.apache.camel.component.box.api.BoxTasksManager</proxyClass>
                  <fromJavasource />
                  <producerOnly>true</producerOnly>
                  <aliases>
                    <alias>
                      <methodPattern>addFileTask</methodPattern>
                      <methodAlias>add</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>deleteTask</methodPattern>
                      <methodAlias>delete</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>getFileTasks</methodPattern>
                      <methodAlias>tasks</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>getTaskInfo</methodPattern>
                      <methodAlias>info</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>updateTaskInfo</methodPattern>
                      <methodAlias>updateInfo</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>addAssignmentToTask</methodPattern>
                      <methodAlias>addAssignment</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>deleteTaskAssignment</methodPattern>
                      <methodAlias>deleteAssignment</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>getTaskAssignments</methodPattern>
                      <methodAlias>assignments</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>getTaskAssignmentInfo</methodPattern>
                      <methodAlias>assignmentInfo</methodAlias>
                    </alias>
                  </aliases>
                  <nullableOptions>
                    <nullableOption>message</nullableOption>
                  </nullableOptions>
                </api>
                <api>
                  <apiName>users</apiName>
                  <proxyClass>org.apache.camel.component.box.api.BoxUsersManager</proxyClass>
                  <fromJavasource />
                  <producerOnly>true</producerOnly>
                  <aliases>
                    <alias>
                      <methodPattern>getCurrentUser</methodPattern>
                      <methodAlias>currentUser</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>getAllEnterpriseOrExternalUsers</methodPattern>
                      <methodAlias>users</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>createAppUser</methodPattern>
                      <methodAlias>create</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>createEnterpriseUser</methodPattern>
                      <methodAlias>create</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>deleteUser</methodPattern>
                      <methodAlias>delete</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>addUserEmailAlias</methodPattern>
                      <methodAlias>addEmailAlias</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>getUserEmailAlias</methodPattern>
                      <methodAlias>emailAlias</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>deleteUserEmailAlias</methodPattern>
                      <methodAlias>deleteEmailAlias</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>getUserInfo</methodPattern>
                      <methodAlias>info</methodAlias>
                    </alias>
                    <alias>
                      <methodPattern>updateUserInfo</methodPattern>
                      <methodAlias>updateInfo</methodAlias>
                    </alias>
                  </aliases>
                  <nullableOptions>
                    <nullableOption>filterTerm</nullableOption>
                    <nullableOption>fields</nullableOption>
                    <nullableOption>params</nullableOption>
                  </nullableOptions>
                </api>
              </apis>
            </configuration>
          </execution>
        </executions>
        <dependencies>
          <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-box-api</artifactId>
            <version>${project.version}</version>
            <classifier>sources</classifier>
          </dependency>
          <dependency>
            <groupId>com.box</groupId>
            <artifactId>box-java-sdk</artifactId>
            <version>${box-java-sdk-version}</version>
            <classifier>sources</classifier>
          </dependency>
        </dependencies>
      </plugin>
    </plugins>
  </build>
</project>
