---
apiVersion: v1
kind: ConfigMap
metadata:
  labels:
    funktion.fabric8.io/kind: Connector
  name: box
data:
  deployment.yml: |
    ---
    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      labels:
        funktion.fabric8.io/kind: Subscription
        connector: box
    spec:
      replicas: 1
      template:
        metadata:
          labels:
            funktion.fabric8.io/kind: Subscription
            connector: box
        spec:
          containers:
          - image: funktion/connector-box:${project.version}
            name: connector
  schema.yml: |
    ---
    component:
      kind: component
      scheme: box
      syntax: box:apiName/methodName
      title: Box
      description: For uploading downloading and managing files folders groups collaborations etc on box DOT com.
      label: api,file,cloud
      deprecated: false
      async: false
      lenientProperties: true
      javaType: org.apache.camel.component.box.BoxComponent
      groupId: org.apache.camel
      artifactId: camel-box
      version: 2.18.3
    componentProperties:
      configuration:
        kind: property
        type: object
        javaType: org.apache.camel.component.box.BoxConfiguration
        deprecated: false
        secret: false
        description: To use the shared configuration
        order: 0
    properties:
      apiName:
        kind: path
        group: common
        required: true
        type: string
        javaType: org.apache.camel.component.box.internal.BoxApiName
        enum:
        - COLLABORATIONS
        - COMMENTS
        - EVENTS
        - FILES
        - FOLDERS
        - GROUPS
        - POLL_EVENTS
        - SEARCH
        - SHARED_COMMENTS
        - SHARED_FILES
        - SHARED_FOLDERS
        - SHARED_ITEMS
        - USERS
        deprecated: false
        secret: false
        description: What kind of operation to perform
        order: 0
      methodName:
        kind: path
        group: common
        required: true
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: false
        description: What sub operation to use for the selected operation
        order: 1
      clientId:
        kind: parameter
        group: common
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: false
        description: Box application client ID
        order: 2
      inBody:
        kind: parameter
        group: common
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: false
        description: Sets the name of a parameter to be passed in the exchange In Body
        order: 3
      loginTimeout:
        kind: parameter
        group: common
        type: integer
        javaType: int
        deprecated: false
        secret: false
        defaultValue: "30"
        description: Amount of time the component will wait for a response from Box.com default is 30 seconds
        order: 4
      revokeOnShutdown:
        kind: parameter
        group: common
        type: boolean
        javaType: boolean
        deprecated: false
        secret: false
        defaultValue: false
        description: Flag to revoke OAuth refresh token on route shutdown default false. Will require a fresh refresh token on restart using either a custom IAuthSecureStorage or automatic component login by providing a user password
        order: 5
      sharedLink:
        kind: parameter
        group: common
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: false
        description: Box shared link for shared endpoints can be a link for a shared comment file or folder
        order: 6
      sharedPassword:
        kind: parameter
        group: common
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: false
        description: Password associated with the shared link MUST be provided with sharedLink
        order: 7
      bridgeErrorHandler:
        kind: parameter
        group: consumer
        label: consumer
        type: boolean
        javaType: boolean
        optionalPrefix: consumer.
        deprecated: false
        secret: false
        defaultValue: false
        description: Allows for bridging the consumer to the Camel routing Error Handler which mean any exceptions occurred while the consumer is trying to pickup incoming messages or the likes will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions that will be logged at WARN/ERROR level and ignored.
        order: 8
      exceptionHandler:
        kind: parameter
        group: consumer (advanced)
        label: consumer,advanced
        type: object
        javaType: org.apache.camel.spi.ExceptionHandler
        optionalPrefix: consumer.
        deprecated: false
        secret: false
        description: To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this options is not in use. By default the consumer will deal with exceptions that will be logged at WARN/ERROR level and ignored.
        order: 9
      exchangePattern:
        kind: parameter
        group: consumer (advanced)
        label: consumer,advanced
        type: string
        javaType: org.apache.camel.ExchangePattern
        enum:
        - InOnly
        - RobustInOnly
        - InOut
        - InOptionalOut
        - OutOnly
        - RobustOutOnly
        - OutIn
        - OutOptionalIn
        deprecated: false
        secret: false
        description: Sets the exchange pattern when the consumer creates an exchange.
        order: 10
      boxConfig:
        kind: parameter
        group: advanced
        label: advanced
        type: object
        javaType: com.box.boxjavalibv2.IBoxConfig
        deprecated: false
        secret: false
        description: Custom Box SDK configuration not required normally
        order: 11
      connectionManagerBuilder:
        kind: parameter
        group: advanced
        label: advanced
        type: object
        javaType: com.box.boxjavalibv2.BoxConnectionManagerBuilder
        deprecated: false
        secret: false
        description: Custom Box connection manager builder used to override default settings like max connections for underlying HttpClient.
        order: 12
      httpParams:
        kind: parameter
        group: advanced
        label: advanced
        type: object
        javaType: java.util.Map<java.lang.String,java.lang.Object>
        deprecated: false
        secret: false
        description: Custom HTTP params for settings like proxy host
        order: 13
      refreshListener:
        kind: parameter
        group: advanced
        label: advanced
        type: object
        javaType: com.box.boxjavalibv2.authorization.OAuthRefreshListener
        deprecated: false
        secret: false
        description: OAuth listener for token updates if the Camel application needs to use the access token outside the route
        order: 14
      synchronous:
        kind: parameter
        group: advanced
        label: advanced
        type: boolean
        javaType: boolean
        deprecated: false
        secret: false
        defaultValue: false
        description: Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported).
        order: 15
      authSecureStorage:
        kind: parameter
        group: security
        label: advanced,security
        type: object
        javaType: com.box.boxjavalibv2.authorization.IAuthSecureStorage
        deprecated: false
        secret: false
        description: OAuth Secure Storage callback can be used to provide and or save OAuth tokens. The callback may return null on first call to allow the component to login and authorize application and obtain an OAuth token which can then be saved in the secure storage. For the component to be able to create a token automatically a user password must be provided.
        order: 16
      clientSecret:
        kind: parameter
        group: security
        label: security
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: true
        description: Box application client secret
        order: 17
      sslContextParameters:
        kind: parameter
        group: security
        label: security
        type: object
        javaType: org.apache.camel.util.jsse.SSLContextParameters
        deprecated: false
        secret: false
        description: To configure security using SSLContextParameters.
        order: 18
      userName:
        kind: parameter
        group: security
        label: security
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: true
        description: Box user name MUST be provided
        order: 19
      userPassword:
        kind: parameter
        group: security
        label: security
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: true
        description: Box user password MUST be provided if authSecureStorage is not set or returns null on first call
        order: 20
  documentation.adoc: "[[Box-BoxComponent]]\nBox Component\n~~~~~~~~~~~~~\n\n*Available\
    \ as of Camel 2.14*\n\nThe Box component provides access to all of the Box.com\
    \ APIs accessible\nusing https://github.com/box/box-java-sdk-v2/[box-java-sdk-v2].\
    \ It\nallows producing messages to upload and download files, create, edit,\n\
    and manage folders, etc. It also supports APIs that allow polling for\nupdates\
    \ to user accounts and even changes to enterprise accounts, etc.\n\nBox.com requires\
    \ the use of OAuth2.0 for all client application\nauthentication. In order to\
    \ use camel-box with your account, you'll need\nto create a new application within\
    \ Box.com at\nhttps://app.box.com/developers/services/edit/[https://app.box.com/developers/services/edit/].\n\
    The Box application's client id and secret will allow access to Box APIs\nwhich\
    \ require a current user. A user access token is generated and\nmanaged by the\
    \ API for an end user. Alternatively the Camel application\ncan register an implementation\n\
    of\_com.box.boxjavalibv2.authorization.IAuthSecureStorage to provide\nan\_com.box.boxjavalibv2.dao.IAuthData\
    \ OAuth token.\n\nMaven users will need to add the following dependency to their\
    \ pom.xml\nfor this component:\n\n[source,java]\n-------------------------------------------\n\
    \    <dependency>\n        <groupId>org.apache.camel</groupId>\n        <artifactId>camel-box</artifactId>\n\
    \        <version>${camel-version}</version>\n    </dependency>\n-------------------------------------------\n\
    \n[[Box-Options]]\nBox Options\n^^^^^^^^^^^\n\n\n\n\n\n// component options: START\n\
    The Box component supports 1 options which are listed below.\n\n\n\n{% raw %}\n\
    [width=\"100%\",cols=\"2,1m,7\",options=\"header\"]\n|=======================================================================\n\
    | Name | Java Type | Description\n| configuration | BoxConfiguration | To use\
    \ the shared configuration\n|=======================================================================\n\
    {% endraw %}\n// component options: END\n\n\n\n\n\n\n\n// endpoint options: START\n\
    The Box component supports 21 endpoint options which are listed below:\n\n{% raw\
    \ %}\n[width=\"100%\",cols=\"2,1,1m,1m,5\",options=\"header\"]\n|=======================================================================\n\
    | Name | Group | Default | Java Type | Description\n| apiName | common |  | BoxApiName\
    \ | *Required* What kind of operation to perform\n| methodName | common |  | String\
    \ | *Required* What sub operation to use for the selected operation\n| clientId\
    \ | common |  | String | Box application client ID\n| inBody | common |  | String\
    \ | Sets the name of a parameter to be passed in the exchange In Body\n| loginTimeout\
    \ | common | 30 | int | Amount of time the component will wait for a response\
    \ from Box.com default is 30 seconds\n| revokeOnShutdown | common | false | boolean\
    \ | Flag to revoke OAuth refresh token on route shutdown default false. Will require\
    \ a fresh refresh token on restart using either a custom IAuthSecureStorage or\
    \ automatic component login by providing a user password\n| sharedLink | common\
    \ |  | String | Box shared link for shared endpoints can be a link for a shared\
    \ comment file or folder\n| sharedPassword | common |  | String | Password associated\
    \ with the shared link MUST be provided with sharedLink\n| bridgeErrorHandler\
    \ | consumer | false | boolean | Allows for bridging the consumer to the Camel\
    \ routing Error Handler which mean any exceptions occurred while the consumer\
    \ is trying to pickup incoming messages or the likes will now be processed as\
    \ a message and handled by the routing Error Handler. By default the consumer\
    \ will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions that\
    \ will be logged at WARN/ERROR level and ignored.\n| exceptionHandler | consumer\
    \ (advanced) |  | ExceptionHandler | To let the consumer use a custom ExceptionHandler.\
    \ Notice if the option bridgeErrorHandler is enabled then this options is not\
    \ in use. By default the consumer will deal with exceptions that will be logged\
    \ at WARN/ERROR level and ignored.\n| exchangePattern | consumer (advanced) |\
    \  | ExchangePattern | Sets the exchange pattern when the consumer creates an\
    \ exchange.\n| boxConfig | advanced |  | IBoxConfig | Custom Box SDK configuration\
    \ not required normally\n| connectionManagerBuilder | advanced |  | BoxConnectionManagerBuilder\
    \ | Custom Box connection manager builder used to override default settings like\
    \ max connections for underlying HttpClient.\n| httpParams | advanced |  | Map\
    \ | Custom HTTP params for settings like proxy host\n| refreshListener | advanced\
    \ |  | OAuthRefreshListener | OAuth listener for token updates if the Camel application\
    \ needs to use the access token outside the route\n| synchronous | advanced |\
    \ false | boolean | Sets whether synchronous processing should be strictly used\
    \ or Camel is allowed to use asynchronous processing (if supported).\n| authSecureStorage\
    \ | security |  | IAuthSecureStorage | OAuth Secure Storage callback can be used\
    \ to provide and or save OAuth tokens. The callback may return null on first call\
    \ to allow the component to login and authorize application and obtain an OAuth\
    \ token which can then be saved in the secure storage. For the component to be\
    \ able to create a token automatically a user password must be provided.\n| clientSecret\
    \ | security |  | String | Box application client secret\n| sslContextParameters\
    \ | security |  | SSLContextParameters | To configure security using SSLContextParameters.\n\
    | userName | security |  | String | Box user name MUST be provided\n| userPassword\
    \ | security |  | String | Box user password MUST be provided if authSecureStorage\
    \ is not set or returns null on first call\n|=======================================================================\n\
    {% endraw %}\n// endpoint options: END\n\n\n\n[[Box-URIformat]]\nURI format\n\
    ^^^^^^^^^^\n\n[source,java]\n--------------------------------------------\n  \
    \  box://endpoint-prefix/endpoint?[options]\n--------------------------------------------\n\
    \nEndpoint prefix can be one of:\n\n* collaborations\n* comments\n* events\n*\
    \ files\n* folders\n* groups\n* poll-events\n* search\n* shared-comments\n* shared-files\n\
    * shared-folders\n* shared-items\n* users\n\n[[Box-BoxComponent.1]]\nBoxComponent\n\
    ^^^^^^^^^^^^\n\nThe Box Component can be configured with the options below. These\n\
    options can be provided using the component's bean\nproperty\_*`configuration`*\_\
    of\ntype\_*`org.apache.camel.component.box.BoxConfiguration`*. These options\n\
    can also be specified in the endpoint URI.\_\n\n[width=\"100%\",cols=\"10%,10%,80%\"\
    ,options=\"header\",]\n|=======================================================================\n\
    |Option |Type |Description\n\n|authSecureStorage |com.box.boxjavalibv2.authorization.IAuthSecureStorage\
    \ |OAuth Secure Storage callback, can be used to provide and or save OAuth\ntokens.\
    \ The callback may return null on first call to allow the\ncomponent to login\
    \ and authorize application and obtain an OAuth token,\nwhich can then be saved\
    \ in the secure storage. For the component to be\nable to create a token automatically\
    \ a user password must be provided.\n\n|boxConfig |com.box.boxjavalibv2.IBoxConfig\
    \ |Custom Box SDK configuration, not required normally\n\n|clientId |String |Box\
    \ application client ID\n\n|clientSecret |String |Box application client secret\n\
    \n|connectionManagerBuilder |com.box.boxjavalibv2.BoxConnectionManagerBuilder\
    \ |Custom Box connection manager builder, used to override default settings\n\
    like max connections for underlying HttpClient.\n\n|httpParams |java.util.Map\
    \ |Custom HTTP params for settings like proxy host\n\n|loginTimeout |int |amount\
    \ of time the component will wait for a response from Box.com,\ndefault is 30\
    \ seconds\n\n|refreshListener |com.box.boxjavalibv2.authorization.OAuthRefreshListener\
    \ |OAuth listener for token updates, if the Camel application needs to use\nthe\
    \ access token outside the route\n\n|revokeOnShutdown |boolean |Flag to revoke\
    \ OAuth refresh token on route shutdown, default false.\nWill require a fresh\
    \ refresh token on restart using either a custom\nIAuthSecureStorage or automatic\
    \ component login by providing a user\npassword\n\n|sharedLink |String |Box shared\
    \ link for shared-* endpoints, can be a link for a shared\ncomment, file or folder\n\
    \n|sharedPassword |String |Password associated with the shared link, MUST be provided\
    \ with\nsharedLink\n\n|userName |String |Box user name, MUST be provided\n\n|userPassword\
    \ |String |Box user password, MUST be provided if authSecureStorage is not set,\
    \ or\nreturns null on first call\n|=======================================================================\n\
    \n[[Box-ProducerEndpoints:]]\nProducer Endpoints:\n^^^^^^^^^^^^^^^^^^^\n\nProducer\
    \ endpoints can use endpoint prefixes followed by endpoint names\nand associated\
    \ options described next. A shorthand alias can be used for\nsome endpoints. The\
    \ endpoint URI MUST contain a prefix.\n\nEndpoint options that are not mandatory\
    \ are denoted by *[]*. When there\nare no mandatory options for an endpoint, one\
    \ of the set of *[]* options\nMUST be provided. Producer endpoints can also use\
    \ a special\noption\_*`inBody`*\_that in turn should contain the name of the endpoint\n\
    option whose value will be contained in the Camel Exchange In message.\n\nAny\
    \ of the endpoint options can be provided in either the endpoint URI,\nor dynamically\
    \ in a message header. The message header name must be of\nthe format\_*`CamelBox.<option>`*.\
    \ Note that the\_*`inBody`*\_option\noverrides message header, i.e. the endpoint\n\
    option\_*`inBody=option`*\_would override a\_*`CamelBox.option`*\_header.\n\n\
    If a value is not provided for the option *defaultRequest* either in the\nendpoint\
    \ URI or in a message header, it will be assumed to be\_`null`.\nNote that the\_\
    `null`\_value will only be used if other options do not\nsatisfy matching endpoints.\n\
    \nIn case of Box API errors the endpoint will throw a\nRuntimeCamelException with\
    \ a\n*com.box.restclientv2.exceptions.BoxSDKException*\_derived exception\ncause.\n\
    \n[[Box-EndpointPrefixcollaborations]]\nEndpoint Prefix\__collaborations_\n++++++++++++++++++++++++++++++++\n\
    \nFor more information on Box collaborations see\nhttps://developers.box.com/docs/#collaborations[https://developers.box.com/docs/#collaborations].\_\
    The\nfollowing endpoints can be invoked with the prefix\_*`collaborations`*\_\
    as\nfollows:\n\n[source,java]\n-------------------------------------------\n \
    \   box://collaborations/endpoint?[options]\n-------------------------------------------\n\
    \n[width=\"100%\",cols=\"10%,10%,10%,70%\",options=\"header\",]\n|=======================================================================\n\
    |Endpoint |Shorthand Alias |Options |Result Body Type\n\n|createCollaboration\
    \ |create |collabRequest, folderId |com.box.boxjavalibv2.dao.BoxCollaboration\n\
    \n|deleteCollaboration |delete |collabId, defaultRequest |\n\n|getAllCollaborations\
    \ |allCollaborations |getAllCollabsRequest |java.util.List\n\n|getCollaboration\
    \ |collaboration |collabId, defaultRequest |com.box.boxjavalibv2.dao.BoxCollaboration\n\
    \n|updateCollaboration |update |collabId, collabRequest |com.box.boxjavalibv2.dao.BoxCollaboration\n\
    |=======================================================================\n\n[[Box-URIOptionsforcollaborations]]\n\
    URI Options for\__collaborations_\n\n\n[width=\"100%\",cols=\"10%,90%\",options=\"\
    header\",]\n|=======================================================================\n\
    |Name |Type\n\n|collabId |String\n\n|collabRequest |com.box.boxjavalibv2.requests.requestobjects.BoxCollabRequestObject\n\
    \n|defaultRequest |com.box.restclientv2.requestsbase.BoxDefaultRequestObject\n\
    \n|folderId |String\n\n|getAllCollabsRequest |com.box.boxjavalibv2.requests.requestobjects.BoxGetAllCollabsRequestObject\n\
    |=======================================================================\n\n[[Box-EndpointPrefixevents]]\n\
    Endpoint Prefix\__events_\n++++++++++++++++++++++++\n\nFor more information on\
    \ Box events see\nhttps://developers.box.com/docs/#events[https://developers.box.com/docs/#events].\n\
    Although this endpoint can be used by producers, Box events are better\nused as\
    \ a consumer endpoint using the *poll-events* endpoint prefix. The\nfollowing\
    \ endpoints can be invoked with the prefix\_*`events`*\_as\nfollows:\n\n[source,java]\n\
    ---------------------------------\n  box://events/endpoint?[options]\n---------------------------------\n\
    \n[width=\"100%\",cols=\"10%,10%,10%,70%\",options=\"header\",]\n|=======================================================================\n\
    |Endpoint |Shorthand Alias |Options |Result Body Type\n\n|getEventOptions |eventOptions\
    \ |defaultRequest |com.box.boxjavalibv2.dao.BoxCollection\n\n|getEvents |events\
    \ |eventRequest |com.box.boxjavalibv2.dao.BoxEventCollection\n|=======================================================================\n\
    \n[[Box-URIOptionsforevents]]\nURI Options for\__events_\n\n[width=\"100%\",cols=\"\
    10%,90%\",options=\"header\",]\n|=======================================================================\n\
    |Name |Type\n\n|defaultRequest |com.box.restclientv2.requestsbase.BoxDefaultRequestObject\n\
    \n|eventRequest |com.box.boxjavalibv2.requests.requestobjects.BoxEventRequestObject\n\
    |=======================================================================\n\n[[Box-EndpointPrefixgroups]]\n\
    Endpoint Prefix\__groups_\n++++++++++++++++++++++++\n\nFor more information on\
    \ Box groups see\nhttps://developers.box.com/docs/#groups[https://developers.box.com/docs/#groups].\n\
    The following endpoints can be invoked with the prefix\_*`groups`*\_as\nfollows:\n\
    \n[source,java]\n-----------------------------------\n    box://groups/endpoint?[options]\n\
    -----------------------------------\n\n[width=\"100%\",cols=\"10%,10%,10%,70%\"\
    ,options=\"header\",]\n|=======================================================================\n\
    |Endpoint |Shorthand Alias |Options |Result Body Type\n\n|createGroup |[groupRequest],\
    \ [name] |com.box.boxjavalibv2.dao.BoxGroup \n\n|createMembership |[groupId, role,\
    \ userId], [groupMembershipRequest] |com.box.boxjavalibv2.dao.BoxGroupMembership\n\
    \n|deleteGroup |delete |defaultRequest, groupId |\n\n|deleteMembership |delete\
    \ |defaultRequest, membershipId |\n\n|getAllCollaborations |allCollaborations\
    \ |defaultRequest, groupId |com.box.boxjavalibv2.dao.BoxCollection\n\n|getAllGroups\
    \ |allGroups |defaultRequest |com.box.boxjavalibv2.dao.BoxCollection\n\n|getMembership\
    \ |membership |defaultRequest, membershipId |com.box.boxjavalibv2.dao.BoxGroupMembership\n\
    \n|getMemberships |memberships |defaultRequest, groupId |com.box.boxjavalibv2.dao.BoxCollection\n\
    \n|updateGroup |update |groupId, groupRequest |com.box.boxjavalibv2.dao.BoxGroup\n\
    \n|updateMembership |update |[groupMembershipRequest], [role], membershipId |com.box.boxjavalibv2.dao.BoxGroupMembership\n\
    |=======================================================================\n\n[[Box-URIOptionsforgroups]]\n\
    URI Options for\__groups_\n\n[width=\"100%\",cols=\"10%,90%\",options=\"header\"\
    ,]\n|=======================================================================\n\
    |Name |Type\n\n|defaultRequest |com.box.restclientv2.requestsbase.BoxDefaultRequestObject\n\
    \n|groupId |String\n\n|groupMembershipRequest |com.box.boxjavalibv2.requests.requestobjects.BoxGroupMembershipRequestObject\n\
    \n|groupRequest |com.box.boxjavalibv2.requests.requestobjects.BoxGroupRequestObject\n\
    \n|membershipId |String\n\n|name |String\n\n|role |String\n\n|userId |String\n\
    \n|=======================================================================\n\n\
    [[Box-EndpointPrefixsearch]]\nEndpoint Prefix\__search_\n++++++++++++++++++++++++\n\
    \nFor more information on Box search API see\nhttps://developers.box.com/docs/#search[https://developers.box.com/docs/#search].\_\
    The\nfollowing endpoints can be invoked with the prefix\_*`search`*\_as\nfollows:\n\
    \n[source,java]\n-----------------------------------\n    box://search/endpoint?[options]\n\
    -----------------------------------\n\n[width=\"100%\",cols=\"10%,10%,10%,70%\"\
    ,options=\"header\",]\n|=======================================================================\n\
    |Endpoint |Shorthand Alias |Options |Result Body Type\n\n|search |defaultRequest,\
    \ searchQuery |com.box.boxjavalibv2.dao.BoxCollection\n|=======================================================================\n\
    \n[[Box-URIOptionsforsearch]]\nURI Options for\__search_\n\n[width=\"100%\",cols=\"\
    10%,90%\",options=\"header\",]\n|=======================================================================\n\
    |Name |Type\n\n|defaultRequest |com.box.restclientv2.requestsbase.BoxDefaultRequestObject\n\
    \n|searchQuery |String\n|=======================================================================\n\
    \n[[Box-EndpointPrefixcommentsandshared-comments]]\nEndpoint Prefix _comments_\
    \ and\__shared-comments_\n++++++++++++++++++++++++++++++++++++++++++++++++\n\n\
    For more information on Box comments see\nhttps://developers.box.com/docs/#comments[https://developers.box.com/docs/#comments].\n\
    The following endpoints can be invoked with the prefix\_*comments*\nor\_*`shared-comments`*\_\
    as follows. The\_*shared-comments* prefix requires\n*sharedLink* and *sharedPassword*\
    \ properties.\_\n\n[source,java]\n--------------------------------------------\n\
    \    box://comments/endpoint?[options]\n    box://shared-comments/endpoint?[options]\n\
    --------------------------------------------\n\n[width=\"100%\",cols=\"10%,10%,10%,70%\"\
    ,options=\"header\",]\n|=======================================================================\n\
    |Endpoint |Shorthand Alias |Options |Result Body Type\n\n|addComment |[commentRequest],\
    \ [commentedItemId, commentedItemType, message] | | com.box.boxjavalibv2.dao.BoxComment\
    \ \n\n|deleteComment |delete |  |commentId, defaultRequest\n\n|getComment |comment\
    \ |commentId, defaultRequest |com.box.boxjavalibv2.dao.BoxComment\n\n|updateComment\
    \ |update |commentId, commentRequest |com.box.boxjavalibv2.dao.BoxComment\n|=======================================================================\n\
    \n[[Box-URIOptionsforcommentsandshared-comments]]\nURI Options for _comments_\
    \ and\__shared-comments_\n\n[width=\"100%\",cols=\"10%,90%\",options=\"header\"\
    ,]\n|=======================================================================\n\
    |Name |Type\n\n|commentId |String\n\n|commentRequest |com.box.boxjavalibv2.requests.requestobjects.BoxCommentRequestObject\n\
    \n|commentedItemId |String\n\n|commentedItemType |com.box.boxjavalibv2.dao.IBoxType\n\
    \n|defaultRequest |com.box.restclientv2.requestsbase.BoxDefaultRequestObject\n\
    \n|message |String\n|=======================================================================\n\
    \n[[Box-EndpointPrefixfilesandshared-files]]\nEndpoint Prefix\__files_ and\__shared-files_\n\
    ++++++++++++++++++++++++++++++++++++++++++\n\nFor more information on Box files\
    \ see\nhttps://developers.box.com/docs/#files[https://developers.box.com/docs/#files].\n\
    The following endpoints can be invoked with the\nprefix\_*`files`*\_or\_*`shared-files`*\_\
    as follows. The\n*`shared-files\_`*prefix requires *sharedLink* and *sharedPassword*\n\
    properties.\_\n\n[source,java]\n----------------------------------------\n   box://files/endpoint?[options]\n\
    \   box://shared-files/endpoint?[options]\n----------------------------------------\n\
    \n[width=\"100%\",cols=\"10%,10%,10%,70%\",options=\"header\",]\n|=======================================================================\n\
    |Endpoint |Shorthand Alias |Options |Result Body Type\n\n|copyFile |  |fileId,\
    \ itemCopyRequest |com.box.boxjavalibv2.dao.BoxFile\n\n|createSharedLink |create\
    \ |fileId, sharedLinkRequest |com.box.boxjavalibv2.dao.BoxFile\n\n|deleteFile\
    \ |  | defaultRequest, fileId |\n\n|downloadFile |download |[destination, listener],\
    \ [listener, outputStreams], defaultRequest,\nfileId |java.io.InputStream\n\n\
    |downloadThumbnail |download |extension, fileId, imageRequest |java.io.InputStream\n\
    \n|getFile |file |defaultRequest, fileId |com.box.boxjavalibv2.dao.BoxFile \n\n\
    |getFileComments |fileComments defaultRequest, fileId |com.box.boxjavalibv2.dao.BoxCollection\n\
    \n|getFileVersions |fileVersions |defaultRequest, fileId |java.util.List\n\n|getPreview\
    \ |preview |extension, fileId, imageRequest |com.box.boxjavalibv2.dao.BoxPreview\n\
    \n|getThumbnail |thumbnail |extension, fileId, imageRequest |com.box.boxjavalibv2.dao.BoxThumbnail\n\
    \n|updateFileInfo |update |fileId, fileRequest |com.box.boxjavalibv2.dao.BoxFile\n\
    \n|uploadFile |upload |fileUploadRequest |com.box.boxjavalibv2.dao.BoxFile\n\n\
    |uploadNewVersion |upload |fileId, fileUploadRequest |com.box.boxjavalibv2.dao.BoxFile\n\
    |=======================================================================\n\n[[Box-URIOptionsforfilesandshared-files]]\n\
    URI Options for _files_ and\__shared-files_\n\n[width=\"100%\",cols=\"10%,90%\"\
    ,options=\"header\",]\n|=======================================================================\n\
    |Name |Type\n\n|defaultRequest |com.box.restclientv2.requestsbase.BoxDefaultRequestObject\n\
    \n|destination |java.io.File\n\n|extension |String\n\n|fileId |String\n\n|fileRequest\
    \ |com.box.boxjavalibv2.requests.requestobjects.BoxFileRequestObject\n\n|fileUploadRequest\
    \ |com.box.restclientv2.requestsbase.BoxFileUploadRequestObject\n\n|imageRequest|com.box.boxjavalibv2.requests.requestobjects.BoxImageRequestObject\
    \ \n\n|itemCopyRequest |com.box.boxjavalibv2.requests.requestobjects.BoxItemCopyRequestObject\n\
    \n|listener |com.box.boxjavalibv2.filetransfer.IFileTransferListener\n\n|outputStreams\
    \ |java.io.OutputStream[]\n\n|sharedLinkRequest |com.box.boxjavalibv2.requests.requestobjects.BoxSharedLinkRequestObject\n\
    |=======================================================================\n\n[[Box-EndpointPrefixfoldersandshared-folders]]\n\
    Endpoint Prefix _folders_ and\__shared-folders_\n++++++++++++++++++++++++++++++++++++++++++++++\n\
    \nFor more information on Box folders see\nhttps://developers.box.com/docs/#folders[https://developers.box.com/docs/#folders].\n\
    The following endpoints can be invoked with the prefix\n*`folders`*\_or\_*`shared-folders`*\_\
    as follows. The prefix\n*shared-folders* requires *sharedLink* and *sharedPassword*\
    \ properties.\_\n\n[source,java]\n-------------------------------------------\n\
    \    box://folders/endpoint?[options]\n    box://shared-folders/endpoint?[options]\n\
    -------------------------------------------\n\n[width=\"100%\",cols=\"10%,10%,10%,70%\"\
    ,options=\"header\",]\n|=======================================================================\n\
    |Endpoint |Shorthand Alias |Options |Result Body Type\n\n|copyFolder |  |folderId,\
    \ itemCopyRequest |com.box.boxjavalibv2.dao.BoxFolder\n\n|createFolder |create\
    \ |folderRequest |com.box.boxjavalibv2.dao.BoxFolder\n\n|createSharedLink |create\
    \ |folderId, sharedLinkRequest|com.box.boxjavalibv2.dao.BoxFolder \n\n|deleteFolder\
    \ |delete |folderDeleteRequest, folderId\n\n|getFolder |folder |defaultRequest,\
    \ folderId |com.box.boxjavalibv2.dao.BoxFolder\n\n|getFolderCollaborations |folderCollaborations\
    \ |defaultRequest, folderId |java.util.List\n\n|getFolderItems |folderItems |folderId,\
    \ pagingRequest |com.box.boxjavalibv2.dao.BoxCollection\n\n|updateFolderInfo |update\
    \ |folderId, folderRequest |com.box.boxjavalibv2.dao.BoxFolder\n|=======================================================================\n\
    \n[[Box-URIOptionsforfoldersorshared-folders]]\nURI Options for _folders_ or\_\
    _shared-folders_\n\n[width=\"100%\",cols=\"10%,90%\",options=\"header\",]\n|=======================================================================\n\
    |Name |Type\n\n|defaultRequest |com.box.restclientv2.requestsbase.BoxDefaultRequestObject\n\
    \n|folderDeleteRequest |com.box.boxjavalibv2.requests.requestobjects.BoxFolderDeleteRequestObject\n\
    \n|folderId |String\n\n|folderRequest |com.box.boxjavalibv2.requests.requestobjects.BoxFolderRequestObject\n\
    \n|itemCopyRequest |com.box.boxjavalibv2.requests.requestobjects.BoxItemCopyRequestObject\n\
    \n|pagingRequest |com.box.boxjavalibv2.requests.requestobjects.BoxPagingRequestObject\n\
    \n|sharedLinkRequest |com.box.boxjavalibv2.requests.requestobjects.BoxSharedLinkRequestObject\n\
    |=======================================================================\n\n[[Box-EndpointPrefixshared-items]]\n\
    Endpoint Prefix\__shared-items_\n++++++++++++++++++++++++++++++\n\nFor more information\
    \ on Box shared items see\nhttps://developers.box.com/docs/#shared-items[https://developers.box.com/docs/#shared-items].\n\
    The following endpoints can be invoked with the\nprefix\_*`shared-items`*\_as\
    \ follows:\n\n[source,java]\n-----------------------------------------\n    box://shared-items/endpoint?[options]\n\
    -----------------------------------------\n\n[width=\"100%\",cols=\"10%,10%,10%,70%\"\
    ,options=\"header\",]\n|=======================================================================\n\
    |Endpoint |Shorthand Alias |Options |Result Body Type\n\n|getSharedItem |sharedItem\
    \ |defaultRequest |com.box.boxjavalibv2.dao.BoxItem\n|=======================================================================\n\
    \n[[Box-URIOptionsforshared-items]]\nURI Options for\__shared-items_\n\n[width=\"\
    100%\",cols=\"10%,90%\",options=\"header\",]\n|=======================================================================\n\
    |Name |Type\n\n|defaultRequest |com.box.restclientv2.requestsbase.BoxDefaultRequestObject\n\
    |=======================================================================\n\n[[Box-EndpointPrefixusers]]\n\
    Endpoint Prefix\__users_\n+++++++++++++++++++++++\n\nFor information on Box users\
    \ see\nhttps://developers.box.com/docs/#users[https://developers.box.com/docs/#users].\n\
    The following endpoints can be invoked with the prefix\_*`users`*\_as\nfollows:\n\
    \n[source,java]\n----------------------------------\n    box://users/endpoint?[options]\n\
    ----------------------------------\n\n[width=\"100%\",cols=\"10%,10%,10%,70%\"\
    ,options=\"header\",]\n|=======================================================================\n\
    |Endpoint |Shorthand Alias |Options |Result Body Type\n\n|addEmailAlias |  |emailAliasRequest,\
    \ userId |com.box.boxjavalibv2.dao.BoxEmailAlias\n\n|createEnterpriseUser |create\
    \ |userRequest |com.box.boxjavalibv2.dao.BoxUser\n\n|deleteEmailAlias |  |defaultRequest,\
    \ emailId, userId |\n\ndeleteEnterpriseUser |  |userDeleteRequest, userId |\n\n\
    |getAllEnterpriseUser |allEnterpriseUser |defaultRequest, filterTerm |java.util.List\n\
    \n|getCurrentUser |currentUser |defaultRequest |com.box.boxjavalibv2.dao.BoxUser\n\
    \n|getEmailAliases |emailAliases |defaultRequest, userId |java.util.List\n\n|moveFolderToAnotherUser\
    \ |  | folderId, simpleUserRequest, userId |com.box.boxjavalibv2.dao.BoxFolder\n\
    \n|updateUserInformaiton |update |userId, userRequest |com.box.boxjavalibv2.dao.BoxUser\n\
    \n|updateUserPrimaryLogin |update |userId, userUpdateLoginRequest |com.box.boxjavalibv2.dao.BoxUser\n\
    |=======================================================================\n\n[[Box-URIOptionsforusers]]\n\
    URI Options for\__users_\n\n[width=\"100%\",cols=\"10%,90%\",options=\"header\"\
    ,]\n|=======================================================================\n\
    |Name |Type\n\n|defaultRequest |com.box.restclientv2.requestsbase.BoxDefaultRequestObject\n\
    \n|emailAliasRequest |com.box.boxjavalibv2.requests.requestobjects.BoxEmailAliasRequestObject\n\
    \n|emailId |String\n\n|filterTerm |String\n\n|folderId |String\n\n|simpleUserRequest\
    \ |com.box.boxjavalibv2.requests.requestobjects.BoxSimpleUserRequestObject\n\n\
    |userDeleteRequest |com.box.boxjavalibv2.requests.requestobjects.BoxUserDeleteRequestObject\n\
    \n|userId |String\n\n|userRequest |com.box.boxjavalibv2.requests.requestobjects.BoxUserRequestObject\n\
    \n|userUpdateLoginRequest |com.box.boxjavalibv2.requests.requestobjects.BoxUserUpdateLoginRequestObject\n\
    |=======================================================================\n\n[[Box-ConsumerEndpoints:]]\n\
    Consumer Endpoints:\n^^^^^^^^^^^^^^^^^^^\n\nFor more information on Box events\
    \ see\nhttps://developers.box.com/docs/#events[https://developers.box.com/docs/#events]\_\
    and\nfor long polling\nsee\_https://developers.box.com/docs/#events-long-polling[https://developers.box.com/docs/#events-long-polling].\n\
    Consumer endpoints can only use the endpoint prefix *poll-events* as\nshown in\
    \ the example next.\_By default the consumer will split\nthe\_com.box.boxjavalibv2.dao.BoxEventCollection\
    \ from every long poll and\ncreate an exchange for every\_com.box.boxjavalibv2.dao.BoxEvent.\
    \ To make\nthe consumer return the entire collection in a single exchange, use\
    \ the\nURI option *consumer.splitResult=false*.\n\n[source,java]\n----------------------------------------\n\
    \    box://poll-events/endpoint?[options]\n----------------------------------------\n\
    \n[width=\"100%\",cols=\"10%,10%,10%,70%\",options=\"header\",]\n|=======================================================================\n\
    |Endpoint |Shorthand Alias |Options |Result Body Type\n\n|poll |  |limit, streamPosition,\
    \ streamType |com.box.boxjavalibv2.dao.BoxEvent by default, or\ncom.box.boxjavalibv2.dao.BoxEventCollection\
    \ when\nconsumer.splitResult=false\n|=======================================================================\n\
    \n[[Box-URIOptionsforpoll-events]]\nURI Options for\__poll-events_\n\n[width=\"\
    100%\",cols=\"10%,90%\",options=\"header\",]\n|=======================================================================\n\
    |Name |Type\n\n|limit |Integer\n\n|streamPosition |Long\n\n|streamType |String\n\
    \n|splitResult |boolean\n|=======================================================================\n\
    \n[[Box-Messageheader]]\nMessage header\n^^^^^^^^^^^^^^\n\nAny of the options\_\
    can be provided in a message header for producer\nendpoints with *CamelBox.* prefix.\n\
    \n[[Box-Messagebody]]\nMessage body\n^^^^^^^^^^^^\n\nAll result message bodies\
    \ utilize objects provided by the Box Java SDK.\nProducer endpoints can specify\
    \ the option name for incoming message body\nin the *inBody* endpoint parameter.\n\
    \n[[Box-TypeConverter]]\nType Converter\n^^^^^^^^^^^^^^\n\nThe Box component also\
    \ provides a Camel type converter to convert\nhttp://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/component/file/GenericFile.html[GenericFile]\n\
    objects from http://camel.apache.org/file2.html[File] component to\na\_*com.box.restclientv2.requestsbase.BoxFileUploadRequestObject*\
    \ to\nupload files to Box.com. The target *folderId* for the upload can be\nspecified\
    \ in the exchange property\_*CamelBox.folderId*. If the exchange\nproperty is\
    \ not specified the value defaults to *\"**0\"* for the root\nfolder ID.\_\n\n\
    [[Box-Usecases]]\nUse cases\n^^^^^^^^^\n\nThe following route uploads new files\
    \ to the user's root folder:\n\n[source,java]\n-----------------------------------------------------------\n\
    \    from(\"file:...\")\n        .to(\"box://files/upload/inBody=fileUploadRequest\"\
    );\n-----------------------------------------------------------\n\nThe following\
    \ route polls user's account for updates:\n\n[source,java]\n-----------------------------------------------------------------------------\n\
    \    from(\"box://poll-events/poll?streamPosition=-1&streamType=all&limit=100\"\
    )\n        .to(\"bean:blah\");\n-----------------------------------------------------------------------------\n\
    \nThe following route uses a producer with dynamic header options.\_The\n*fileId*\_\
    property has the Box file id , so its assigned to the\n*CamelBox.fileId* header\
    \ as follows:\n\n[source,java]\n-------------------------------------------------------\n\
    \    from(\"direct:foo\")\n        .setHeader(\"CamelBox.fileId\", header(\"fileId\"\
    ))\n        .to(\"box://files/download\")\n        .to(\"file://...\");\n-------------------------------------------------------\n"
