• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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