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.InstanceGroupsClient.AggregatedListPagedResponse; 20 import static com.google.cloud.compute.v1.InstanceGroupsClient.ListInstancesPagedResponse; 21 import static com.google.cloud.compute.v1.InstanceGroupsClient.ListPagedResponse; 22 23 import com.google.api.core.ApiFunction; 24 import com.google.api.core.BetaApi; 25 import com.google.api.gax.core.GoogleCredentialsProvider; 26 import com.google.api.gax.core.InstantiatingExecutorProvider; 27 import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider; 28 import com.google.api.gax.rpc.ApiClientHeaderProvider; 29 import com.google.api.gax.rpc.ClientContext; 30 import com.google.api.gax.rpc.ClientSettings; 31 import com.google.api.gax.rpc.OperationCallSettings; 32 import com.google.api.gax.rpc.PagedCallSettings; 33 import com.google.api.gax.rpc.TransportChannelProvider; 34 import com.google.api.gax.rpc.UnaryCallSettings; 35 import com.google.cloud.compute.v1.stub.InstanceGroupsStubSettings; 36 import java.io.IOException; 37 import java.util.List; 38 import javax.annotation.Generated; 39 40 // AUTO-GENERATED DOCUMENTATION AND CLASS. 41 /** 42 * Settings class to configure an instance of {@link InstanceGroupsClient}. 43 * 44 * <p>The default instance has everything set to sensible defaults: 45 * 46 * <ul> 47 * <li>The default service address (compute.googleapis.com) and default port (443) are used. 48 * <li>Credentials are acquired automatically through Application Default Credentials. 49 * <li>Retries are configured for idempotent methods but not for non-idempotent methods. 50 * </ul> 51 * 52 * <p>The builder of this class is recursive, so contained classes are themselves builders. When 53 * build() is called, the tree of builders is called to create the complete settings object. 54 * 55 * <p>For example, to set the total timeout of get to 30 seconds: 56 * 57 * <pre>{@code 58 * // This snippet has been automatically generated and should be regarded as a code template only. 59 * // It will require modifications to work: 60 * // - It may require correct/in-range values for request initialization. 61 * // - It may require specifying regional endpoints when creating the service client as shown in 62 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 63 * InstanceGroupsSettings.Builder instanceGroupsSettingsBuilder = 64 * InstanceGroupsSettings.newBuilder(); 65 * instanceGroupsSettingsBuilder 66 * .getSettings() 67 * .setRetrySettings( 68 * instanceGroupsSettingsBuilder 69 * .getSettings() 70 * .getRetrySettings() 71 * .toBuilder() 72 * .setTotalTimeout(Duration.ofSeconds(30)) 73 * .build()); 74 * InstanceGroupsSettings instanceGroupsSettings = instanceGroupsSettingsBuilder.build(); 75 * }</pre> 76 */ 77 @Generated("by gapic-generator-java") 78 public class InstanceGroupsSettings extends ClientSettings<InstanceGroupsSettings> { 79 80 /** Returns the object with the settings used for calls to addInstances. */ addInstancesSettings()81 public UnaryCallSettings<AddInstancesInstanceGroupRequest, Operation> addInstancesSettings() { 82 return ((InstanceGroupsStubSettings) getStubSettings()).addInstancesSettings(); 83 } 84 85 /** Returns the object with the settings used for calls to addInstances. */ 86 public OperationCallSettings<AddInstancesInstanceGroupRequest, Operation, Operation> addInstancesOperationSettings()87 addInstancesOperationSettings() { 88 return ((InstanceGroupsStubSettings) getStubSettings()).addInstancesOperationSettings(); 89 } 90 91 /** Returns the object with the settings used for calls to aggregatedList. */ 92 public PagedCallSettings< 93 AggregatedListInstanceGroupsRequest, 94 InstanceGroupAggregatedList, 95 AggregatedListPagedResponse> aggregatedListSettings()96 aggregatedListSettings() { 97 return ((InstanceGroupsStubSettings) getStubSettings()).aggregatedListSettings(); 98 } 99 100 /** Returns the object with the settings used for calls to delete. */ deleteSettings()101 public UnaryCallSettings<DeleteInstanceGroupRequest, Operation> deleteSettings() { 102 return ((InstanceGroupsStubSettings) getStubSettings()).deleteSettings(); 103 } 104 105 /** Returns the object with the settings used for calls to delete. */ 106 public OperationCallSettings<DeleteInstanceGroupRequest, Operation, Operation> deleteOperationSettings()107 deleteOperationSettings() { 108 return ((InstanceGroupsStubSettings) getStubSettings()).deleteOperationSettings(); 109 } 110 111 /** Returns the object with the settings used for calls to get. */ getSettings()112 public UnaryCallSettings<GetInstanceGroupRequest, InstanceGroup> getSettings() { 113 return ((InstanceGroupsStubSettings) getStubSettings()).getSettings(); 114 } 115 116 /** Returns the object with the settings used for calls to insert. */ insertSettings()117 public UnaryCallSettings<InsertInstanceGroupRequest, Operation> insertSettings() { 118 return ((InstanceGroupsStubSettings) getStubSettings()).insertSettings(); 119 } 120 121 /** Returns the object with the settings used for calls to insert. */ 122 public OperationCallSettings<InsertInstanceGroupRequest, Operation, Operation> insertOperationSettings()123 insertOperationSettings() { 124 return ((InstanceGroupsStubSettings) getStubSettings()).insertOperationSettings(); 125 } 126 127 /** Returns the object with the settings used for calls to list. */ 128 public PagedCallSettings<ListInstanceGroupsRequest, InstanceGroupList, ListPagedResponse> listSettings()129 listSettings() { 130 return ((InstanceGroupsStubSettings) getStubSettings()).listSettings(); 131 } 132 133 /** Returns the object with the settings used for calls to listInstances. */ 134 public PagedCallSettings< 135 ListInstancesInstanceGroupsRequest, 136 InstanceGroupsListInstances, 137 ListInstancesPagedResponse> listInstancesSettings()138 listInstancesSettings() { 139 return ((InstanceGroupsStubSettings) getStubSettings()).listInstancesSettings(); 140 } 141 142 /** Returns the object with the settings used for calls to removeInstances. */ 143 public UnaryCallSettings<RemoveInstancesInstanceGroupRequest, Operation> removeInstancesSettings()144 removeInstancesSettings() { 145 return ((InstanceGroupsStubSettings) getStubSettings()).removeInstancesSettings(); 146 } 147 148 /** Returns the object with the settings used for calls to removeInstances. */ 149 public OperationCallSettings<RemoveInstancesInstanceGroupRequest, Operation, Operation> removeInstancesOperationSettings()150 removeInstancesOperationSettings() { 151 return ((InstanceGroupsStubSettings) getStubSettings()).removeInstancesOperationSettings(); 152 } 153 154 /** Returns the object with the settings used for calls to setNamedPorts. */ setNamedPortsSettings()155 public UnaryCallSettings<SetNamedPortsInstanceGroupRequest, Operation> setNamedPortsSettings() { 156 return ((InstanceGroupsStubSettings) getStubSettings()).setNamedPortsSettings(); 157 } 158 159 /** Returns the object with the settings used for calls to setNamedPorts. */ 160 public OperationCallSettings<SetNamedPortsInstanceGroupRequest, Operation, Operation> setNamedPortsOperationSettings()161 setNamedPortsOperationSettings() { 162 return ((InstanceGroupsStubSettings) getStubSettings()).setNamedPortsOperationSettings(); 163 } 164 create(InstanceGroupsStubSettings stub)165 public static final InstanceGroupsSettings create(InstanceGroupsStubSettings stub) 166 throws IOException { 167 return new InstanceGroupsSettings.Builder(stub.toBuilder()).build(); 168 } 169 170 /** Returns a builder for the default ExecutorProvider for this service. */ defaultExecutorProviderBuilder()171 public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() { 172 return InstanceGroupsStubSettings.defaultExecutorProviderBuilder(); 173 } 174 175 /** Returns the default service endpoint. */ getDefaultEndpoint()176 public static String getDefaultEndpoint() { 177 return InstanceGroupsStubSettings.getDefaultEndpoint(); 178 } 179 180 /** Returns the default service scopes. */ getDefaultServiceScopes()181 public static List<String> getDefaultServiceScopes() { 182 return InstanceGroupsStubSettings.getDefaultServiceScopes(); 183 } 184 185 /** Returns a builder for the default credentials for this service. */ defaultCredentialsProviderBuilder()186 public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() { 187 return InstanceGroupsStubSettings.defaultCredentialsProviderBuilder(); 188 } 189 190 /** Returns a builder for the default ChannelProvider for this service. */ 191 public static InstantiatingHttpJsonChannelProvider.Builder defaultHttpJsonTransportProviderBuilder()192 defaultHttpJsonTransportProviderBuilder() { 193 return InstanceGroupsStubSettings.defaultHttpJsonTransportProviderBuilder(); 194 } 195 defaultTransportChannelProvider()196 public static TransportChannelProvider defaultTransportChannelProvider() { 197 return InstanceGroupsStubSettings.defaultTransportChannelProvider(); 198 } 199 200 @BetaApi("The surface for customizing headers is not stable yet and may change in the future.") defaultApiClientHeaderProviderBuilder()201 public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() { 202 return InstanceGroupsStubSettings.defaultApiClientHeaderProviderBuilder(); 203 } 204 205 /** Returns a new builder for this class. */ newBuilder()206 public static Builder newBuilder() { 207 return Builder.createDefault(); 208 } 209 210 /** Returns a new builder for this class. */ newBuilder(ClientContext clientContext)211 public static Builder newBuilder(ClientContext clientContext) { 212 return new Builder(clientContext); 213 } 214 215 /** Returns a builder containing all the values of this settings class. */ toBuilder()216 public Builder toBuilder() { 217 return new Builder(this); 218 } 219 InstanceGroupsSettings(Builder settingsBuilder)220 protected InstanceGroupsSettings(Builder settingsBuilder) throws IOException { 221 super(settingsBuilder); 222 } 223 224 /** Builder for InstanceGroupsSettings. */ 225 public static class Builder extends ClientSettings.Builder<InstanceGroupsSettings, Builder> { 226 Builder()227 protected Builder() throws IOException { 228 this(((ClientContext) null)); 229 } 230 Builder(ClientContext clientContext)231 protected Builder(ClientContext clientContext) { 232 super(InstanceGroupsStubSettings.newBuilder(clientContext)); 233 } 234 Builder(InstanceGroupsSettings settings)235 protected Builder(InstanceGroupsSettings settings) { 236 super(settings.getStubSettings().toBuilder()); 237 } 238 Builder(InstanceGroupsStubSettings.Builder stubSettings)239 protected Builder(InstanceGroupsStubSettings.Builder stubSettings) { 240 super(stubSettings); 241 } 242 createDefault()243 private static Builder createDefault() { 244 return new Builder(InstanceGroupsStubSettings.newBuilder()); 245 } 246 getStubSettingsBuilder()247 public InstanceGroupsStubSettings.Builder getStubSettingsBuilder() { 248 return ((InstanceGroupsStubSettings.Builder) getStubSettings()); 249 } 250 251 /** 252 * Applies the given settings updater function to all of the unary API methods in this service. 253 * 254 * <p>Note: This method does not support applying settings to streaming methods. 255 */ applyToAllUnaryMethods( ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater)256 public Builder applyToAllUnaryMethods( 257 ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater) { 258 super.applyToAllUnaryMethods( 259 getStubSettingsBuilder().unaryMethodSettingsBuilders(), settingsUpdater); 260 return this; 261 } 262 263 /** Returns the builder for the settings used for calls to addInstances. */ 264 public UnaryCallSettings.Builder<AddInstancesInstanceGroupRequest, Operation> addInstancesSettings()265 addInstancesSettings() { 266 return getStubSettingsBuilder().addInstancesSettings(); 267 } 268 269 /** Returns the builder for the settings used for calls to addInstances. */ 270 public OperationCallSettings.Builder<AddInstancesInstanceGroupRequest, Operation, Operation> addInstancesOperationSettings()271 addInstancesOperationSettings() { 272 return getStubSettingsBuilder().addInstancesOperationSettings(); 273 } 274 275 /** Returns the builder for the settings used for calls to aggregatedList. */ 276 public PagedCallSettings.Builder< 277 AggregatedListInstanceGroupsRequest, 278 InstanceGroupAggregatedList, 279 AggregatedListPagedResponse> aggregatedListSettings()280 aggregatedListSettings() { 281 return getStubSettingsBuilder().aggregatedListSettings(); 282 } 283 284 /** Returns the builder for the settings used for calls to delete. */ deleteSettings()285 public UnaryCallSettings.Builder<DeleteInstanceGroupRequest, Operation> deleteSettings() { 286 return getStubSettingsBuilder().deleteSettings(); 287 } 288 289 /** Returns the builder for the settings used for calls to delete. */ 290 public OperationCallSettings.Builder<DeleteInstanceGroupRequest, Operation, Operation> deleteOperationSettings()291 deleteOperationSettings() { 292 return getStubSettingsBuilder().deleteOperationSettings(); 293 } 294 295 /** Returns the builder for the settings used for calls to get. */ getSettings()296 public UnaryCallSettings.Builder<GetInstanceGroupRequest, InstanceGroup> getSettings() { 297 return getStubSettingsBuilder().getSettings(); 298 } 299 300 /** Returns the builder for the settings used for calls to insert. */ insertSettings()301 public UnaryCallSettings.Builder<InsertInstanceGroupRequest, Operation> insertSettings() { 302 return getStubSettingsBuilder().insertSettings(); 303 } 304 305 /** Returns the builder for the settings used for calls to insert. */ 306 public OperationCallSettings.Builder<InsertInstanceGroupRequest, Operation, Operation> insertOperationSettings()307 insertOperationSettings() { 308 return getStubSettingsBuilder().insertOperationSettings(); 309 } 310 311 /** Returns the builder for the settings used for calls to list. */ 312 public PagedCallSettings.Builder< 313 ListInstanceGroupsRequest, InstanceGroupList, ListPagedResponse> listSettings()314 listSettings() { 315 return getStubSettingsBuilder().listSettings(); 316 } 317 318 /** Returns the builder for the settings used for calls to listInstances. */ 319 public PagedCallSettings.Builder< 320 ListInstancesInstanceGroupsRequest, 321 InstanceGroupsListInstances, 322 ListInstancesPagedResponse> listInstancesSettings()323 listInstancesSettings() { 324 return getStubSettingsBuilder().listInstancesSettings(); 325 } 326 327 /** Returns the builder for the settings used for calls to removeInstances. */ 328 public UnaryCallSettings.Builder<RemoveInstancesInstanceGroupRequest, Operation> removeInstancesSettings()329 removeInstancesSettings() { 330 return getStubSettingsBuilder().removeInstancesSettings(); 331 } 332 333 /** Returns the builder for the settings used for calls to removeInstances. */ 334 public OperationCallSettings.Builder<RemoveInstancesInstanceGroupRequest, Operation, Operation> removeInstancesOperationSettings()335 removeInstancesOperationSettings() { 336 return getStubSettingsBuilder().removeInstancesOperationSettings(); 337 } 338 339 /** Returns the builder for the settings used for calls to setNamedPorts. */ 340 public UnaryCallSettings.Builder<SetNamedPortsInstanceGroupRequest, Operation> setNamedPortsSettings()341 setNamedPortsSettings() { 342 return getStubSettingsBuilder().setNamedPortsSettings(); 343 } 344 345 /** Returns the builder for the settings used for calls to setNamedPorts. */ 346 public OperationCallSettings.Builder<SetNamedPortsInstanceGroupRequest, Operation, Operation> setNamedPortsOperationSettings()347 setNamedPortsOperationSettings() { 348 return getStubSettingsBuilder().setNamedPortsOperationSettings(); 349 } 350 351 @Override build()352 public InstanceGroupsSettings build() throws IOException { 353 return new InstanceGroupsSettings(this); 354 } 355 } 356 } 357