java.lang.Object
software.amazon.awssdk.services.kendra.model.Document
All Implemented Interfaces:
Serializable, SdkPojo, ToCopyableBuilder<Document.Builder,Document>

@Generated("software.amazon.awssdk:codegen") public final class Document extends Object implements SdkPojo, Serializable, ToCopyableBuilder<Document.Builder,Document>

A document in an index.

See Also:
  • Method Details

    • id

      public final String id()

      A identifier of the document in the index.

      Note, each document ID must be unique per index. You cannot create a data source to index your documents with their unique IDs and then use the BatchPutDocument API to index the same documents, or vice versa. You can delete a data source and then use the BatchPutDocument API to index the same documents, or vice versa.

      Returns:
      A identifier of the document in the index.

      Note, each document ID must be unique per index. You cannot create a data source to index your documents with their unique IDs and then use the BatchPutDocument API to index the same documents, or vice versa. You can delete a data source and then use the BatchPutDocument API to index the same documents, or vice versa.

    • title

      public final String title()

      The title of the document.

      Returns:
      The title of the document.
    • blob

      public final SdkBytes blob()

      The contents of the document.

      Documents passed to the Blob parameter must be base64 encoded. Your code might not need to encode the document file bytes if you're using an Amazon Web Services SDK to call Amazon Kendra APIs. If you are calling the Amazon Kendra endpoint directly using REST, you must base64 encode the contents before sending.

      Returns:
      The contents of the document.

      Documents passed to the Blob parameter must be base64 encoded. Your code might not need to encode the document file bytes if you're using an Amazon Web Services SDK to call Amazon Kendra APIs. If you are calling the Amazon Kendra endpoint directly using REST, you must base64 encode the contents before sending.

    • s3Path

      public final S3Path s3Path()
      Returns the value of the S3Path property for this object.
      Returns:
      The value of the S3Path property for this object.
    • hasAttributes

      public final boolean hasAttributes()
      For responses, this returns true if the service returned a value for the Attributes property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • attributes

      public final List<DocumentAttribute> attributes()

      Custom attributes to apply to the document. Use the custom attributes to provide additional information for searching, to provide facets for refining searches, and to provide additional information in the query response.

      For example, 'DataSourceId' and 'DataSourceSyncJobId' are custom attributes that provide information on the synchronization of documents running on a data source. Note, 'DataSourceSyncJobId' could be an optional custom attribute as Amazon Kendra will use the ID of a running sync job.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasAttributes() method.

      Returns:
      Custom attributes to apply to the document. Use the custom attributes to provide additional information for searching, to provide facets for refining searches, and to provide additional information in the query response.

      For example, 'DataSourceId' and 'DataSourceSyncJobId' are custom attributes that provide information on the synchronization of documents running on a data source. Note, 'DataSourceSyncJobId' could be an optional custom attribute as Amazon Kendra will use the ID of a running sync job.

    • hasAccessControlList

      public final boolean hasAccessControlList()
      For responses, this returns true if the service returned a value for the AccessControlList property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • accessControlList

      public final List<Principal> accessControlList()

      Information on principals (users and/or groups) and which documents they should have access to. This is useful for user context filtering, where search results are filtered based on the user or their group access to documents.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasAccessControlList() method.

      Returns:
      Information on principals (users and/or groups) and which documents they should have access to. This is useful for user context filtering, where search results are filtered based on the user or their group access to documents.
    • hasHierarchicalAccessControlList

      public final boolean hasHierarchicalAccessControlList()
      For responses, this returns true if the service returned a value for the HierarchicalAccessControlList property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • hierarchicalAccessControlList

      public final List<HierarchicalPrincipal> hierarchicalAccessControlList()

      The list of principal lists that define the hierarchy for which documents users should have access to.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasHierarchicalAccessControlList() method.

      Returns:
      The list of principal lists that define the hierarchy for which documents users should have access to.
    • contentType

      public final ContentType contentType()

      The file type of the document in the Blob field.

      If you want to index snippets or subsets of HTML documents instead of the entirety of the HTML documents, you must add the HTML start and closing tags (<HTML>content</HTML>) around the content.

      If the service returns an enum value that is not available in the current SDK version, contentType will return ContentType.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from contentTypeAsString().

      Returns:
      The file type of the document in the Blob field.

      If you want to index snippets or subsets of HTML documents instead of the entirety of the HTML documents, you must add the HTML start and closing tags (<HTML>content</HTML>) around the content.

      See Also:
    • contentTypeAsString

      public final String contentTypeAsString()

      The file type of the document in the Blob field.

      If you want to index snippets or subsets of HTML documents instead of the entirety of the HTML documents, you must add the HTML start and closing tags (<HTML>content</HTML>) around the content.

      If the service returns an enum value that is not available in the current SDK version, contentType will return ContentType.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from contentTypeAsString().

      Returns:
      The file type of the document in the Blob field.

      If you want to index snippets or subsets of HTML documents instead of the entirety of the HTML documents, you must add the HTML start and closing tags (<HTML>content</HTML>) around the content.

      See Also:
    • accessControlConfigurationId

      public final String accessControlConfigurationId()

      The identifier of the access control configuration that you want to apply to the document.

      Returns:
      The identifier of the access control configuration that you want to apply to the document.
    • toBuilder

      public Document.Builder toBuilder()
      Description copied from interface: ToCopyableBuilder
      Take this object and create a builder that contains all of the current property values of this object.
      Specified by:
      toBuilder in interface ToCopyableBuilder<Document.Builder,Document>
      Returns:
      a builder for type T
    • builder

      public static Document.Builder builder()
    • serializableBuilderClass

      public static Class<? extends Document.Builder> serializableBuilderClass()
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public final boolean equals(Object obj)
      Overrides:
      equals in class Object
    • equalsBySdkFields

      public final boolean equalsBySdkFields(Object obj)
      Description copied from interface: SdkPojo
      Indicates whether some other object is "equal to" this one by SDK fields. An SDK field is a modeled, non-inherited field in an SdkPojo class, and is generated based on a service model.

      If an SdkPojo class does not have any inherited fields, equalsBySdkFields and equals are essentially the same.

      Specified by:
      equalsBySdkFields in interface SdkPojo
      Parameters:
      obj - the object to be compared with
      Returns:
      true if the other object equals to this object by sdk fields, false otherwise.
    • toString

      public final String toString()
      Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be redacted from this string using a placeholder value.
      Overrides:
      toString in class Object
    • getValueForField

      public final <T> Optional<T> getValueForField(String fieldName, Class<T> clazz)
    • sdkFields

      public final List<SdkField<?>> sdkFields()
      Specified by:
      sdkFields in interface SdkPojo
      Returns:
      List of SdkField in this POJO. May be empty list but should never be null.