View Javadoc
1   /*
2    * #%L
3    * wcm.io
4    * %%
5    * Copyright (C) 2024 wcm.io
6    * %%
7    * Licensed under the Apache License, Version 2.0 (the "License");
8    * you may not use this file except in compliance with the License.
9    * You may obtain a copy of the License at
10   *
11   *      http://www.apache.org/licenses/LICENSE-2.0
12   *
13   * Unless required by applicable law or agreed to in writing, software
14   * distributed under the License is distributed on an "AS IS" BASIS,
15   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16   * See the License for the specific language governing permissions and
17   * limitations under the License.
18   * #L%
19   */
20  package io.wcm.handler.mediasource.dam.impl.weboptimized;
21  
22  import org.jetbrains.annotations.NotNull;
23  import org.jetbrains.annotations.Nullable;
24  
25  import com.day.cq.dam.api.Asset;
26  
27  /**
28   * Supports rendering asset renditions from stored in AEMaaCS sites instance via Next Generation Dynamic Media
29   * "Web-Optimized Image Delivery", rendering the renditions on the edge.
30   * This is not available in AEM 6.5 or AEMaaCS SDK.
31   */
32  public interface WebOptimizedImageDeliveryService {
33  
34    /**
35     * @return Whether AEM AssetDelivery service is available and the support is enabled.
36     */
37    boolean isEnabled();
38  
39    /**
40     * Get delivery URL for a rendition of an asset.
41     * @param asset Asset
42     * @param params Parameters
43     * @return Delivery URL or null if not supported or not enabled
44     */
45    @Nullable
46    String getDeliveryUrl(@NotNull Asset asset, @NotNull WebOptimizedImageDeliveryParams params);
47  
48  }