protected abstract ProgressEvent handleRequest()

in aws-codeartifact-repository/src/main/java/software/amazon/codeartifact/repository/BaseHandlerStd.java [38:80]


  protected abstract ProgressEvent<ResourceModel, CallbackContext> handleRequest(
    final AmazonWebServicesClientProxy proxy,
    final ResourceHandlerRequest<ResourceModel> request,
    final CallbackContext callbackContext,
    final ProxyClient<CodeartifactClient> proxyClient,
    final Logger logger);

  protected ProgressEvent<ResourceModel, CallbackContext> associateExternalConnections(
      final ProgressEvent<ResourceModel, CallbackContext> progress,
      final CallbackContext callbackContext,
      final ResourceHandlerRequest<ResourceModel> request,
      final ProxyClient<CodeartifactClient> proxyClient,
      final Set<String> externalConnectionsToAdd,
      final Logger logger
  ) {
      ResourceModel resourceModel = request.getDesiredResourceState();
      logger.log(String.format("Adding external connections: %s", externalConnectionsToAdd.toString()));
      if (CollectionUtils.isNullOrEmpty(externalConnectionsToAdd)) {
          logger.log("No external connections to add");
          // Nothing to add, continue
          return ProgressEvent.progress(resourceModel, callbackContext);
      }

      // Loop is currently not necessary because only 1 external connection is allowed, leaving this in for
      // when multiple are supported
      externalConnectionsToAdd.forEach(ec -> {
          try {
              AssociateExternalConnectionRequest associateExternalConnectionRequest
                  = Translator.translateAssociateExternalConnectionsRequest(resourceModel, ec);

              proxyClient.injectCredentialsAndInvokeV2(associateExternalConnectionRequest, proxyClient.client()::associateExternalConnection);
          } catch (final AwsServiceException e) {
              String repositoryName = progress.getResourceModel().getRepositoryName();
              Translator.throwCfnException(e, Constants.ASSOCIATE_EXTERNAL_CONNECTION, repositoryName);
          }
          logger.log(String.format("Successfully associated external connection: %s", ec));
      });

      return ProgressEvent.<ResourceModel, CallbackContext>builder()
          .resourceModel(resourceModel)
          .status(OperationStatus.IN_PROGRESS)
          .build();
  }