static ResourceModel translateFromReadResponse()

in aws-kendra-index/src/main/java/software/amazon/kendra/index/Translator.java [100:142]


  static ResourceModel translateFromReadResponse(final DescribeIndexResponse describeIndexResponse,
                                                 final ListTagsForResourceResponse listTagsForResourceResponse,
                                                 String arn) {
    // e.g. https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-logs/blob/2077c92299aeb9a68ae8f4418b5e932b12a8b186/aws-logs-loggroup/src/main/java/com/aws/logs/loggroup/Translator.java#L58-L73
    ResourceModel.ResourceModelBuilder builder = ResourceModel.builder()
            .id(describeIndexResponse.id())
            .arn(arn)
            .name(describeIndexResponse.name())
            .roleArn(describeIndexResponse.roleArn())
            .description(describeIndexResponse.description())
            .edition(describeIndexResponse.edition().toString())
            .userContextPolicy(describeIndexResponse.userContextPolicy() == null ? null : describeIndexResponse.userContextPolicy().toString())
            .userTokenConfigurations(translateFromSdkUserTokenConfigurations(describeIndexResponse.userTokenConfigurations()));
    if (describeIndexResponse.serverSideEncryptionConfiguration() != null
            && (describeIndexResponse.serverSideEncryptionConfiguration().kmsKeyId() != null)) {
      builder.serverSideEncryptionConfiguration(
              software.amazon.kendra.index.ServerSideEncryptionConfiguration
                      .builder()
                      .kmsKeyId(describeIndexResponse.serverSideEncryptionConfiguration().kmsKeyId())
                      .build());
    }
    if (describeIndexResponse.capacityUnits() != null) {
      CapacityUnitsConfiguration capacityUnitsConfiguration = describeIndexResponse.capacityUnits();
      // If VCU is equal to its null equivalent (ie storage and query capacity units
      // are both equal to 0), then don't set VCU in the resource model.
      if (capacityUnitsConfiguration.queryCapacityUnits() != 0
              || capacityUnitsConfiguration.storageCapacityUnits() != 0) {
        builder.capacityUnits(software.amazon.kendra.index.CapacityUnitsConfiguration
                .builder()
                .storageCapacityUnits(describeIndexResponse.capacityUnits().storageCapacityUnits())
                .queryCapacityUnits(describeIndexResponse.capacityUnits().queryCapacityUnits())
                .build());
      }
    }
    List<software.amazon.kendra.index.Tag> tags = ListConverter.toModel(listTagsForResourceResponse.tags(),
            x -> software.amazon.kendra.index.Tag.builder().key(x.key()).value(x.value()).build());
    builder.tags(tags);
    List<software.amazon.kendra.index.DocumentMetadataConfiguration> modelDocumentMetadataConfigurationList =
            translateFromSdkDocumentMetadataConfigurationList(describeIndexResponse.documentMetadataConfigurations());
    builder.documentMetadataConfigurations(modelDocumentMetadataConfigurationList);

    return builder.build();
  }