private ResourceModel getWorkGroup()

in workgroup/src/main/java/software/amazon/athena/workgroup/ReadHandler.java [44:83]


  private ResourceModel getWorkGroup(final ResourceModel model) {
    final GetWorkGroupRequest getWorkGroupRequest = GetWorkGroupRequest.builder()
      .workGroup(model.getName())
      .build();
    final String workGroupARN = getWorkGroupArn(request, model.getName());
    try {
      // Get WorkGroup
      final WorkGroup workGroup = clientProxy.injectCredentialsAndInvokeV2(getWorkGroupRequest, athenaClient::getWorkGroup).workGroup();

      // List all tags for this WorkGroup
      ListTagsForResourceRequest listTagsRequest = ListTagsForResourceRequest.builder()
          .resourceARN(workGroupARN)
          .maxResults(100)
          .build();
      String nextToken;
      List<Tag> tags = Lists.newArrayList();
      do {
        ListTagsForResourceResponse listTagsResponse = clientProxy.injectCredentialsAndInvokeV2(
            listTagsRequest, athenaClient::listTagsForResource);
        tags.addAll(listTagsResponse.tags());
        nextToken = listTagsResponse.nextToken();
        if (nextToken != null) {
          listTagsRequest = listTagsRequest.toBuilder().nextToken(nextToken).build();
        }
      } while (nextToken != null);

      return ResourceModel.builder()
        .name(workGroup.name())
        .state(workGroup.stateAsString())
        .description(workGroup.description())
        .recursiveDeleteOption(model.getRecursiveDeleteOption())
        .creationTime(Long.toString(workGroup.creationTime().getEpochSecond()))
        .workGroupConfiguration(workGroup.configuration() != null ? translator.createCfnWorkgroupConfigurationFromSdkConfiguration(workGroup.configuration()) : null)
        .workGroupConfigurationUpdates(model.getWorkGroupConfigurationUpdates())
        .tags(translator.createCfnTagsFromSdkTags(tags))
        .build();
    } catch (AthenaException e) {
        throw translateAthenaException(e, model.getName());
    }
  }