1 /* 2 * Copyright 2022 Google LLC 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * https://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.google.cloud.compute.v1; 18 19 import static com.google.cloud.compute.v1.InstanceTemplatesClient.AggregatedListPagedResponse; 20 import static com.google.cloud.compute.v1.InstanceTemplatesClient.ListPagedResponse; 21 22 import com.google.api.core.ApiFunction; 23 import com.google.api.core.BetaApi; 24 import com.google.api.gax.core.GoogleCredentialsProvider; 25 import com.google.api.gax.core.InstantiatingExecutorProvider; 26 import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider; 27 import com.google.api.gax.rpc.ApiClientHeaderProvider; 28 import com.google.api.gax.rpc.ClientContext; 29 import com.google.api.gax.rpc.ClientSettings; 30 import com.google.api.gax.rpc.OperationCallSettings; 31 import com.google.api.gax.rpc.PagedCallSettings; 32 import com.google.api.gax.rpc.TransportChannelProvider; 33 import com.google.api.gax.rpc.UnaryCallSettings; 34 import com.google.cloud.compute.v1.stub.InstanceTemplatesStubSettings; 35 import java.io.IOException; 36 import java.util.List; 37 import javax.annotation.Generated; 38 39 // AUTO-GENERATED DOCUMENTATION AND CLASS. 40 /** 41 * Settings class to configure an instance of {@link InstanceTemplatesClient}. 42 * 43 * <p>The default instance has everything set to sensible defaults: 44 * 45 * <ul> 46 * <li>The default service address (compute.googleapis.com) and default port (443) are used. 47 * <li>Credentials are acquired automatically through Application Default Credentials. 48 * <li>Retries are configured for idempotent methods but not for non-idempotent methods. 49 * </ul> 50 * 51 * <p>The builder of this class is recursive, so contained classes are themselves builders. When 52 * build() is called, the tree of builders is called to create the complete settings object. 53 * 54 * <p>For example, to set the total timeout of get to 30 seconds: 55 * 56 * <pre>{@code 57 * // This snippet has been automatically generated and should be regarded as a code template only. 58 * // It will require modifications to work: 59 * // - It may require correct/in-range values for request initialization. 60 * // - It may require specifying regional endpoints when creating the service client as shown in 61 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 62 * InstanceTemplatesSettings.Builder instanceTemplatesSettingsBuilder = 63 * InstanceTemplatesSettings.newBuilder(); 64 * instanceTemplatesSettingsBuilder 65 * .getSettings() 66 * .setRetrySettings( 67 * instanceTemplatesSettingsBuilder 68 * .getSettings() 69 * .getRetrySettings() 70 * .toBuilder() 71 * .setTotalTimeout(Duration.ofSeconds(30)) 72 * .build()); 73 * InstanceTemplatesSettings instanceTemplatesSettings = instanceTemplatesSettingsBuilder.build(); 74 * }</pre> 75 */ 76 @Generated("by gapic-generator-java") 77 public class InstanceTemplatesSettings extends ClientSettings<InstanceTemplatesSettings> { 78 79 /** Returns the object with the settings used for calls to aggregatedList. */ 80 public PagedCallSettings< 81 AggregatedListInstanceTemplatesRequest, 82 InstanceTemplateAggregatedList, 83 AggregatedListPagedResponse> aggregatedListSettings()84 aggregatedListSettings() { 85 return ((InstanceTemplatesStubSettings) getStubSettings()).aggregatedListSettings(); 86 } 87 88 /** Returns the object with the settings used for calls to delete. */ deleteSettings()89 public UnaryCallSettings<DeleteInstanceTemplateRequest, Operation> deleteSettings() { 90 return ((InstanceTemplatesStubSettings) getStubSettings()).deleteSettings(); 91 } 92 93 /** Returns the object with the settings used for calls to delete. */ 94 public OperationCallSettings<DeleteInstanceTemplateRequest, Operation, Operation> deleteOperationSettings()95 deleteOperationSettings() { 96 return ((InstanceTemplatesStubSettings) getStubSettings()).deleteOperationSettings(); 97 } 98 99 /** Returns the object with the settings used for calls to get. */ getSettings()100 public UnaryCallSettings<GetInstanceTemplateRequest, InstanceTemplate> getSettings() { 101 return ((InstanceTemplatesStubSettings) getStubSettings()).getSettings(); 102 } 103 104 /** Returns the object with the settings used for calls to getIamPolicy. */ getIamPolicySettings()105 public UnaryCallSettings<GetIamPolicyInstanceTemplateRequest, Policy> getIamPolicySettings() { 106 return ((InstanceTemplatesStubSettings) getStubSettings()).getIamPolicySettings(); 107 } 108 109 /** Returns the object with the settings used for calls to insert. */ insertSettings()110 public UnaryCallSettings<InsertInstanceTemplateRequest, Operation> insertSettings() { 111 return ((InstanceTemplatesStubSettings) getStubSettings()).insertSettings(); 112 } 113 114 /** Returns the object with the settings used for calls to insert. */ 115 public OperationCallSettings<InsertInstanceTemplateRequest, Operation, Operation> insertOperationSettings()116 insertOperationSettings() { 117 return ((InstanceTemplatesStubSettings) getStubSettings()).insertOperationSettings(); 118 } 119 120 /** Returns the object with the settings used for calls to list. */ 121 public PagedCallSettings<ListInstanceTemplatesRequest, InstanceTemplateList, ListPagedResponse> listSettings()122 listSettings() { 123 return ((InstanceTemplatesStubSettings) getStubSettings()).listSettings(); 124 } 125 126 /** Returns the object with the settings used for calls to setIamPolicy. */ setIamPolicySettings()127 public UnaryCallSettings<SetIamPolicyInstanceTemplateRequest, Policy> setIamPolicySettings() { 128 return ((InstanceTemplatesStubSettings) getStubSettings()).setIamPolicySettings(); 129 } 130 131 /** Returns the object with the settings used for calls to testIamPermissions. */ 132 public UnaryCallSettings<TestIamPermissionsInstanceTemplateRequest, TestPermissionsResponse> testIamPermissionsSettings()133 testIamPermissionsSettings() { 134 return ((InstanceTemplatesStubSettings) getStubSettings()).testIamPermissionsSettings(); 135 } 136 create(InstanceTemplatesStubSettings stub)137 public static final InstanceTemplatesSettings create(InstanceTemplatesStubSettings stub) 138 throws IOException { 139 return new InstanceTemplatesSettings.Builder(stub.toBuilder()).build(); 140 } 141 142 /** Returns a builder for the default ExecutorProvider for this service. */ defaultExecutorProviderBuilder()143 public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() { 144 return InstanceTemplatesStubSettings.defaultExecutorProviderBuilder(); 145 } 146 147 /** Returns the default service endpoint. */ getDefaultEndpoint()148 public static String getDefaultEndpoint() { 149 return InstanceTemplatesStubSettings.getDefaultEndpoint(); 150 } 151 152 /** Returns the default service scopes. */ getDefaultServiceScopes()153 public static List<String> getDefaultServiceScopes() { 154 return InstanceTemplatesStubSettings.getDefaultServiceScopes(); 155 } 156 157 /** Returns a builder for the default credentials for this service. */ defaultCredentialsProviderBuilder()158 public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() { 159 return InstanceTemplatesStubSettings.defaultCredentialsProviderBuilder(); 160 } 161 162 /** Returns a builder for the default ChannelProvider for this service. */ 163 public static InstantiatingHttpJsonChannelProvider.Builder defaultHttpJsonTransportProviderBuilder()164 defaultHttpJsonTransportProviderBuilder() { 165 return InstanceTemplatesStubSettings.defaultHttpJsonTransportProviderBuilder(); 166 } 167 defaultTransportChannelProvider()168 public static TransportChannelProvider defaultTransportChannelProvider() { 169 return InstanceTemplatesStubSettings.defaultTransportChannelProvider(); 170 } 171 172 @BetaApi("The surface for customizing headers is not stable yet and may change in the future.") defaultApiClientHeaderProviderBuilder()173 public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() { 174 return InstanceTemplatesStubSettings.defaultApiClientHeaderProviderBuilder(); 175 } 176 177 /** Returns a new builder for this class. */ newBuilder()178 public static Builder newBuilder() { 179 return Builder.createDefault(); 180 } 181 182 /** Returns a new builder for this class. */ newBuilder(ClientContext clientContext)183 public static Builder newBuilder(ClientContext clientContext) { 184 return new Builder(clientContext); 185 } 186 187 /** Returns a builder containing all the values of this settings class. */ toBuilder()188 public Builder toBuilder() { 189 return new Builder(this); 190 } 191 InstanceTemplatesSettings(Builder settingsBuilder)192 protected InstanceTemplatesSettings(Builder settingsBuilder) throws IOException { 193 super(settingsBuilder); 194 } 195 196 /** Builder for InstanceTemplatesSettings. */ 197 public static class Builder extends ClientSettings.Builder<InstanceTemplatesSettings, Builder> { 198 Builder()199 protected Builder() throws IOException { 200 this(((ClientContext) null)); 201 } 202 Builder(ClientContext clientContext)203 protected Builder(ClientContext clientContext) { 204 super(InstanceTemplatesStubSettings.newBuilder(clientContext)); 205 } 206 Builder(InstanceTemplatesSettings settings)207 protected Builder(InstanceTemplatesSettings settings) { 208 super(settings.getStubSettings().toBuilder()); 209 } 210 Builder(InstanceTemplatesStubSettings.Builder stubSettings)211 protected Builder(InstanceTemplatesStubSettings.Builder stubSettings) { 212 super(stubSettings); 213 } 214 createDefault()215 private static Builder createDefault() { 216 return new Builder(InstanceTemplatesStubSettings.newBuilder()); 217 } 218 getStubSettingsBuilder()219 public InstanceTemplatesStubSettings.Builder getStubSettingsBuilder() { 220 return ((InstanceTemplatesStubSettings.Builder) getStubSettings()); 221 } 222 223 /** 224 * Applies the given settings updater function to all of the unary API methods in this service. 225 * 226 * <p>Note: This method does not support applying settings to streaming methods. 227 */ applyToAllUnaryMethods( ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater)228 public Builder applyToAllUnaryMethods( 229 ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater) { 230 super.applyToAllUnaryMethods( 231 getStubSettingsBuilder().unaryMethodSettingsBuilders(), settingsUpdater); 232 return this; 233 } 234 235 /** Returns the builder for the settings used for calls to aggregatedList. */ 236 public PagedCallSettings.Builder< 237 AggregatedListInstanceTemplatesRequest, 238 InstanceTemplateAggregatedList, 239 AggregatedListPagedResponse> aggregatedListSettings()240 aggregatedListSettings() { 241 return getStubSettingsBuilder().aggregatedListSettings(); 242 } 243 244 /** Returns the builder for the settings used for calls to delete. */ deleteSettings()245 public UnaryCallSettings.Builder<DeleteInstanceTemplateRequest, Operation> deleteSettings() { 246 return getStubSettingsBuilder().deleteSettings(); 247 } 248 249 /** Returns the builder for the settings used for calls to delete. */ 250 public OperationCallSettings.Builder<DeleteInstanceTemplateRequest, Operation, Operation> deleteOperationSettings()251 deleteOperationSettings() { 252 return getStubSettingsBuilder().deleteOperationSettings(); 253 } 254 255 /** Returns the builder for the settings used for calls to get. */ getSettings()256 public UnaryCallSettings.Builder<GetInstanceTemplateRequest, InstanceTemplate> getSettings() { 257 return getStubSettingsBuilder().getSettings(); 258 } 259 260 /** Returns the builder for the settings used for calls to getIamPolicy. */ 261 public UnaryCallSettings.Builder<GetIamPolicyInstanceTemplateRequest, Policy> getIamPolicySettings()262 getIamPolicySettings() { 263 return getStubSettingsBuilder().getIamPolicySettings(); 264 } 265 266 /** Returns the builder for the settings used for calls to insert. */ insertSettings()267 public UnaryCallSettings.Builder<InsertInstanceTemplateRequest, Operation> insertSettings() { 268 return getStubSettingsBuilder().insertSettings(); 269 } 270 271 /** Returns the builder for the settings used for calls to insert. */ 272 public OperationCallSettings.Builder<InsertInstanceTemplateRequest, Operation, Operation> insertOperationSettings()273 insertOperationSettings() { 274 return getStubSettingsBuilder().insertOperationSettings(); 275 } 276 277 /** Returns the builder for the settings used for calls to list. */ 278 public PagedCallSettings.Builder< 279 ListInstanceTemplatesRequest, InstanceTemplateList, ListPagedResponse> listSettings()280 listSettings() { 281 return getStubSettingsBuilder().listSettings(); 282 } 283 284 /** Returns the builder for the settings used for calls to setIamPolicy. */ 285 public UnaryCallSettings.Builder<SetIamPolicyInstanceTemplateRequest, Policy> setIamPolicySettings()286 setIamPolicySettings() { 287 return getStubSettingsBuilder().setIamPolicySettings(); 288 } 289 290 /** Returns the builder for the settings used for calls to testIamPermissions. */ 291 public UnaryCallSettings.Builder< 292 TestIamPermissionsInstanceTemplateRequest, TestPermissionsResponse> testIamPermissionsSettings()293 testIamPermissionsSettings() { 294 return getStubSettingsBuilder().testIamPermissionsSettings(); 295 } 296 297 @Override build()298 public InstanceTemplatesSettings build() throws IOException { 299 return new InstanceTemplatesSettings(this); 300 } 301 } 302 } 303