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.orgpolicy.v2; 18 19 import static com.google.cloud.orgpolicy.v2.OrgPolicyClient.ListConstraintsPagedResponse; 20 import static com.google.cloud.orgpolicy.v2.OrgPolicyClient.ListPoliciesPagedResponse; 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.grpc.InstantiatingGrpcChannelProvider; 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.PagedCallSettings; 32 import com.google.api.gax.rpc.TransportChannelProvider; 33 import com.google.api.gax.rpc.UnaryCallSettings; 34 import com.google.cloud.orgpolicy.v2.stub.OrgPolicyStubSettings; 35 import com.google.protobuf.Empty; 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 OrgPolicyClient}. 43 * 44 * <p>The default instance has everything set to sensible defaults: 45 * 46 * <ul> 47 * <li>The default service address (orgpolicy.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 getPolicy 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 * OrgPolicySettings.Builder orgPolicySettingsBuilder = OrgPolicySettings.newBuilder(); 64 * orgPolicySettingsBuilder 65 * .getPolicySettings() 66 * .setRetrySettings( 67 * orgPolicySettingsBuilder 68 * .getPolicySettings() 69 * .getRetrySettings() 70 * .toBuilder() 71 * .setTotalTimeout(Duration.ofSeconds(30)) 72 * .build()); 73 * OrgPolicySettings orgPolicySettings = orgPolicySettingsBuilder.build(); 74 * }</pre> 75 */ 76 @Generated("by gapic-generator-java") 77 public class OrgPolicySettings extends ClientSettings<OrgPolicySettings> { 78 79 /** Returns the object with the settings used for calls to listConstraints. */ 80 public PagedCallSettings< 81 ListConstraintsRequest, ListConstraintsResponse, ListConstraintsPagedResponse> listConstraintsSettings()82 listConstraintsSettings() { 83 return ((OrgPolicyStubSettings) getStubSettings()).listConstraintsSettings(); 84 } 85 86 /** Returns the object with the settings used for calls to listPolicies. */ 87 public PagedCallSettings<ListPoliciesRequest, ListPoliciesResponse, ListPoliciesPagedResponse> listPoliciesSettings()88 listPoliciesSettings() { 89 return ((OrgPolicyStubSettings) getStubSettings()).listPoliciesSettings(); 90 } 91 92 /** Returns the object with the settings used for calls to getPolicy. */ getPolicySettings()93 public UnaryCallSettings<GetPolicyRequest, Policy> getPolicySettings() { 94 return ((OrgPolicyStubSettings) getStubSettings()).getPolicySettings(); 95 } 96 97 /** Returns the object with the settings used for calls to getEffectivePolicy. */ getEffectivePolicySettings()98 public UnaryCallSettings<GetEffectivePolicyRequest, Policy> getEffectivePolicySettings() { 99 return ((OrgPolicyStubSettings) getStubSettings()).getEffectivePolicySettings(); 100 } 101 102 /** Returns the object with the settings used for calls to createPolicy. */ createPolicySettings()103 public UnaryCallSettings<CreatePolicyRequest, Policy> createPolicySettings() { 104 return ((OrgPolicyStubSettings) getStubSettings()).createPolicySettings(); 105 } 106 107 /** Returns the object with the settings used for calls to updatePolicy. */ updatePolicySettings()108 public UnaryCallSettings<UpdatePolicyRequest, Policy> updatePolicySettings() { 109 return ((OrgPolicyStubSettings) getStubSettings()).updatePolicySettings(); 110 } 111 112 /** Returns the object with the settings used for calls to deletePolicy. */ deletePolicySettings()113 public UnaryCallSettings<DeletePolicyRequest, Empty> deletePolicySettings() { 114 return ((OrgPolicyStubSettings) getStubSettings()).deletePolicySettings(); 115 } 116 create(OrgPolicyStubSettings stub)117 public static final OrgPolicySettings create(OrgPolicyStubSettings stub) throws IOException { 118 return new OrgPolicySettings.Builder(stub.toBuilder()).build(); 119 } 120 121 /** Returns a builder for the default ExecutorProvider for this service. */ defaultExecutorProviderBuilder()122 public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() { 123 return OrgPolicyStubSettings.defaultExecutorProviderBuilder(); 124 } 125 126 /** Returns the default service endpoint. */ getDefaultEndpoint()127 public static String getDefaultEndpoint() { 128 return OrgPolicyStubSettings.getDefaultEndpoint(); 129 } 130 131 /** Returns the default service scopes. */ getDefaultServiceScopes()132 public static List<String> getDefaultServiceScopes() { 133 return OrgPolicyStubSettings.getDefaultServiceScopes(); 134 } 135 136 /** Returns a builder for the default credentials for this service. */ defaultCredentialsProviderBuilder()137 public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() { 138 return OrgPolicyStubSettings.defaultCredentialsProviderBuilder(); 139 } 140 141 /** Returns a builder for the default gRPC ChannelProvider for this service. */ defaultGrpcTransportProviderBuilder()142 public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() { 143 return OrgPolicyStubSettings.defaultGrpcTransportProviderBuilder(); 144 } 145 146 /** Returns a builder for the default REST ChannelProvider for this service. */ 147 @BetaApi 148 public static InstantiatingHttpJsonChannelProvider.Builder defaultHttpJsonTransportProviderBuilder()149 defaultHttpJsonTransportProviderBuilder() { 150 return OrgPolicyStubSettings.defaultHttpJsonTransportProviderBuilder(); 151 } 152 defaultTransportChannelProvider()153 public static TransportChannelProvider defaultTransportChannelProvider() { 154 return OrgPolicyStubSettings.defaultTransportChannelProvider(); 155 } 156 157 @BetaApi("The surface for customizing headers is not stable yet and may change in the future.") defaultApiClientHeaderProviderBuilder()158 public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() { 159 return OrgPolicyStubSettings.defaultApiClientHeaderProviderBuilder(); 160 } 161 162 /** Returns a new gRPC builder for this class. */ newBuilder()163 public static Builder newBuilder() { 164 return Builder.createDefault(); 165 } 166 167 /** Returns a new REST builder for this class. */ 168 @BetaApi newHttpJsonBuilder()169 public static Builder newHttpJsonBuilder() { 170 return Builder.createHttpJsonDefault(); 171 } 172 173 /** Returns a new builder for this class. */ newBuilder(ClientContext clientContext)174 public static Builder newBuilder(ClientContext clientContext) { 175 return new Builder(clientContext); 176 } 177 178 /** Returns a builder containing all the values of this settings class. */ toBuilder()179 public Builder toBuilder() { 180 return new Builder(this); 181 } 182 OrgPolicySettings(Builder settingsBuilder)183 protected OrgPolicySettings(Builder settingsBuilder) throws IOException { 184 super(settingsBuilder); 185 } 186 187 /** Builder for OrgPolicySettings. */ 188 public static class Builder extends ClientSettings.Builder<OrgPolicySettings, Builder> { 189 Builder()190 protected Builder() throws IOException { 191 this(((ClientContext) null)); 192 } 193 Builder(ClientContext clientContext)194 protected Builder(ClientContext clientContext) { 195 super(OrgPolicyStubSettings.newBuilder(clientContext)); 196 } 197 Builder(OrgPolicySettings settings)198 protected Builder(OrgPolicySettings settings) { 199 super(settings.getStubSettings().toBuilder()); 200 } 201 Builder(OrgPolicyStubSettings.Builder stubSettings)202 protected Builder(OrgPolicyStubSettings.Builder stubSettings) { 203 super(stubSettings); 204 } 205 createDefault()206 private static Builder createDefault() { 207 return new Builder(OrgPolicyStubSettings.newBuilder()); 208 } 209 210 @BetaApi createHttpJsonDefault()211 private static Builder createHttpJsonDefault() { 212 return new Builder(OrgPolicyStubSettings.newHttpJsonBuilder()); 213 } 214 getStubSettingsBuilder()215 public OrgPolicyStubSettings.Builder getStubSettingsBuilder() { 216 return ((OrgPolicyStubSettings.Builder) getStubSettings()); 217 } 218 219 /** 220 * Applies the given settings updater function to all of the unary API methods in this service. 221 * 222 * <p>Note: This method does not support applying settings to streaming methods. 223 */ applyToAllUnaryMethods( ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater)224 public Builder applyToAllUnaryMethods( 225 ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater) { 226 super.applyToAllUnaryMethods( 227 getStubSettingsBuilder().unaryMethodSettingsBuilders(), settingsUpdater); 228 return this; 229 } 230 231 /** Returns the builder for the settings used for calls to listConstraints. */ 232 public PagedCallSettings.Builder< 233 ListConstraintsRequest, ListConstraintsResponse, ListConstraintsPagedResponse> listConstraintsSettings()234 listConstraintsSettings() { 235 return getStubSettingsBuilder().listConstraintsSettings(); 236 } 237 238 /** Returns the builder for the settings used for calls to listPolicies. */ 239 public PagedCallSettings.Builder< 240 ListPoliciesRequest, ListPoliciesResponse, ListPoliciesPagedResponse> listPoliciesSettings()241 listPoliciesSettings() { 242 return getStubSettingsBuilder().listPoliciesSettings(); 243 } 244 245 /** Returns the builder for the settings used for calls to getPolicy. */ getPolicySettings()246 public UnaryCallSettings.Builder<GetPolicyRequest, Policy> getPolicySettings() { 247 return getStubSettingsBuilder().getPolicySettings(); 248 } 249 250 /** Returns the builder for the settings used for calls to getEffectivePolicy. */ 251 public UnaryCallSettings.Builder<GetEffectivePolicyRequest, Policy> getEffectivePolicySettings()252 getEffectivePolicySettings() { 253 return getStubSettingsBuilder().getEffectivePolicySettings(); 254 } 255 256 /** Returns the builder for the settings used for calls to createPolicy. */ createPolicySettings()257 public UnaryCallSettings.Builder<CreatePolicyRequest, Policy> createPolicySettings() { 258 return getStubSettingsBuilder().createPolicySettings(); 259 } 260 261 /** Returns the builder for the settings used for calls to updatePolicy. */ updatePolicySettings()262 public UnaryCallSettings.Builder<UpdatePolicyRequest, Policy> updatePolicySettings() { 263 return getStubSettingsBuilder().updatePolicySettings(); 264 } 265 266 /** Returns the builder for the settings used for calls to deletePolicy. */ deletePolicySettings()267 public UnaryCallSettings.Builder<DeletePolicyRequest, Empty> deletePolicySettings() { 268 return getStubSettingsBuilder().deletePolicySettings(); 269 } 270 271 @Override build()272 public OrgPolicySettings build() throws IOException { 273 return new OrgPolicySettings(this); 274 } 275 } 276 } 277