001 002package com.commercetools.api.models.extension; 003 004import java.time.*; 005import java.util.*; 006import java.util.function.Function; 007 008import javax.annotation.Nullable; 009 010import com.fasterxml.jackson.annotation.*; 011import com.fasterxml.jackson.databind.annotation.*; 012 013import io.vrap.rmf.base.client.utils.Generated; 014 015/** 016 * ExtensionSetTimeoutInMsAction 017 * 018 * <hr> 019 * Example to create an instance using the builder pattern 020 * <div class=code-example> 021 * <pre><code class='java'> 022 * ExtensionSetTimeoutInMsAction extensionSetTimeoutInMsAction = ExtensionSetTimeoutInMsAction.builder() 023 * .build() 024 * </code></pre> 025 * </div> 026 */ 027@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 028@JsonDeserialize(as = ExtensionSetTimeoutInMsActionImpl.class) 029public interface ExtensionSetTimeoutInMsAction extends ExtensionUpdateAction { 030 031 /** 032 * discriminator value for ExtensionSetTimeoutInMsAction 033 */ 034 String SET_TIMEOUT_IN_MS = "setTimeoutInMs"; 035 036 /** 037 * <p>Value to set. If not defined, the maximum value is used. If no timeout is provided, the default value is used for all types of Extensions. The maximum value is 10000 ms (10 seconds) for <code>payment</code> Extensions and 2000 ms (2 seconds) for all other Extensions.</p> 038 * <p>This limit can be increased per Project after we review the performance impact. Please contact our support via the Support Portal and provide the Region, Project key, and use case.</p> 039 * @return timeoutInMs 040 */ 041 042 @JsonProperty("timeoutInMs") 043 public Integer getTimeoutInMs(); 044 045 /** 046 * <p>Value to set. If not defined, the maximum value is used. If no timeout is provided, the default value is used for all types of Extensions. The maximum value is 10000 ms (10 seconds) for <code>payment</code> Extensions and 2000 ms (2 seconds) for all other Extensions.</p> 047 * <p>This limit can be increased per Project after we review the performance impact. Please contact our support via the Support Portal and provide the Region, Project key, and use case.</p> 048 * @param timeoutInMs value to be set 049 */ 050 051 public void setTimeoutInMs(final Integer timeoutInMs); 052 053 /** 054 * factory method 055 * @return instance of ExtensionSetTimeoutInMsAction 056 */ 057 public static ExtensionSetTimeoutInMsAction of() { 058 return new ExtensionSetTimeoutInMsActionImpl(); 059 } 060 061 /** 062 * factory method to create a shallow copy ExtensionSetTimeoutInMsAction 063 * @param template instance to be copied 064 * @return copy instance 065 */ 066 public static ExtensionSetTimeoutInMsAction of(final ExtensionSetTimeoutInMsAction template) { 067 ExtensionSetTimeoutInMsActionImpl instance = new ExtensionSetTimeoutInMsActionImpl(); 068 instance.setTimeoutInMs(template.getTimeoutInMs()); 069 return instance; 070 } 071 072 /** 073 * factory method to create a deep copy of ExtensionSetTimeoutInMsAction 074 * @param template instance to be copied 075 * @return copy instance 076 */ 077 @Nullable 078 public static ExtensionSetTimeoutInMsAction deepCopy(@Nullable final ExtensionSetTimeoutInMsAction template) { 079 if (template == null) { 080 return null; 081 } 082 ExtensionSetTimeoutInMsActionImpl instance = new ExtensionSetTimeoutInMsActionImpl(); 083 instance.setTimeoutInMs(template.getTimeoutInMs()); 084 return instance; 085 } 086 087 /** 088 * builder factory method for ExtensionSetTimeoutInMsAction 089 * @return builder 090 */ 091 public static ExtensionSetTimeoutInMsActionBuilder builder() { 092 return ExtensionSetTimeoutInMsActionBuilder.of(); 093 } 094 095 /** 096 * create builder for ExtensionSetTimeoutInMsAction instance 097 * @param template instance with prefilled values for the builder 098 * @return builder 099 */ 100 public static ExtensionSetTimeoutInMsActionBuilder builder(final ExtensionSetTimeoutInMsAction template) { 101 return ExtensionSetTimeoutInMsActionBuilder.of(template); 102 } 103 104 /** 105 * accessor map function 106 * @param <T> mapped type 107 * @param helper function to map the object 108 * @return mapped value 109 */ 110 default <T> T withExtensionSetTimeoutInMsAction(Function<ExtensionSetTimeoutInMsAction, T> helper) { 111 return helper.apply(this); 112 } 113 114 /** 115 * gives a TypeReference for usage with Jackson DataBind 116 * @return TypeReference 117 */ 118 public static com.fasterxml.jackson.core.type.TypeReference<ExtensionSetTimeoutInMsAction> typeReference() { 119 return new com.fasterxml.jackson.core.type.TypeReference<ExtensionSetTimeoutInMsAction>() { 120 @Override 121 public String toString() { 122 return "TypeReference<ExtensionSetTimeoutInMsAction>"; 123 } 124 }; 125 } 126}