private CachePolicy createNewPolicy()

in s3-artifact-storage-server/src/main/java/jetbrains/buildServer/artifacts/s3/web/S3CloudFrontDistributionCreationController.java [396:441]


  private CachePolicy createNewPolicy(@NotNull CloudFrontClient cloudFrontClient, @NotNull List<CachePolicySummary> existingPolicies) {
    CachePolicy defaultPolicy = existingPolicies
      .stream()
      .map(CachePolicySummary::cachePolicy)
      .filter(IS_DEFAULT_POLICY)
      .findAny()
      .orElseThrow(() -> CloudFrontException.builder()
        .message(String.format("Managed Cache policy '%s' not found", S3_CLOUDFRONT_DEFAULT_CACHE_POLICY))
        .build()
      );

    ParametersInCacheKeyAndForwardedToOrigin forwardingParameters = ParametersInCacheKeyAndForwardedToOrigin.builder()
      .queryStringsConfig(
        CachePolicyQueryStringsConfig.builder()
          .queryStringBehavior(CachePolicyQueryStringBehavior.ALL)
          .build()
      )
      .cookiesConfig(
        CachePolicyCookiesConfig.builder()
          .cookieBehavior(CachePolicyCookieBehavior.NONE)
          .build()
      )
      .headersConfig(
        CachePolicyHeadersConfig.builder()
          .headerBehavior(CachePolicyHeaderBehavior.NONE)
          .build()
      )
      .enableAcceptEncodingGzip(true)
      .enableAcceptEncodingBrotli(true)
      .build();

    CreateCachePolicyRequest request = CreateCachePolicyRequest.builder()
      .cachePolicyConfig(
        defaultPolicy.cachePolicyConfig()
          .toBuilder()
          .name(S3_CLOUDFRONT_GENERATED_CACHE_POLICY)
          .comment(BASE_COMMENT)
          .parametersInCacheKeyAndForwardedToOrigin(forwardingParameters)
          .build()
      )
      .build();

    CachePolicy newPolicy = cloudFrontClient.createCachePolicy(request).cachePolicy();

    return newPolicy != null ? newPolicy : defaultPolicy;
  }