/** Find the methods that should be generated on the surface when no GAPIC config was given. */ private static ImmutableMap<Method, MethodConfigProto> findMethodsToGenerateWithoutConfigYaml( Interface apiInterface) { ImmutableMap.Builder<Method, MethodConfigProto> methodsToSurface = ImmutableMap.builder(); // TODO(andrealin): After migration off GAPIC config is complete; generate all methods // from protofile even if they aren't included in the GAPIC config. // Just generate all methods defined in the protos. apiInterface .getMethods() .forEach(m -> methodsToSurface.put(m, MethodConfigProto.getDefaultInstance())); return methodsToSurface.build(); }
private static List<String> findHeaderRequestParams( MethodConfigProto methodConfigProto, Method method, ProtoParser protoParser) { List<String> headerRequestParams = ImmutableList.copyOf(methodConfigProto.getHeaderRequestParamsList()); if (!headerRequestParams.isEmpty()) { return headerRequestParams; } // Fetch header params from the proto annotations. return protoParser.getHeaderParams(method).asList(); }
public SampleSpec(MethodConfigProto methodConfigProto) { specified = methodConfigProto.hasSamples(); sampleConfiguration = methodConfigProto.getSamples(); valueSets = methodConfigProto.getSampleValueSetsList(); HashSet<String> ids = new HashSet<>(); for (SampleValueSet valueSet : valueSets) { String id = valueSet.getId(); if (!ids.add(id)) { throw new IllegalArgumentException( String.format( "in method \"%s\": duplicate value set id: \"%s\"", methodConfigProto.getName(), id)); } } }
private static ImmutableMap<String, String> createMethodRetryNamesFromConfigProto( InterfaceConfigProto interfaceConfigProto) { ImmutableMap.Builder<String, String> builder = ImmutableMap.builder(); // Add each method name from config proto and its non-empty retry code name. // Sample entry: {"ListShelves", "non_idempotent"} for (MethodConfigProto method : interfaceConfigProto.getMethodsList()) { if (!Strings.isNullOrEmpty(method.getRetryCodesName())) { builder.put(method.getName(), method.getRetryCodesName()); } } return builder.build(); }
public static String getRetryParamsName( MethodConfigProto methodConfigProto, DiagCollector diagCollector, Set<String> retryParamsConfigNames) { String retryParamsName = methodConfigProto.getRetryParamsName(); if (Strings.isNullOrEmpty(retryParamsName)) { return RETRY_PARAMS_DEFAULT_NAME; } if (!retryParamsConfigNames.isEmpty() && !retryParamsConfigNames.contains(retryParamsName)) { diagCollector.addDiag( Diag.error( SimpleLocation.TOPLEVEL, "Retry parameters config used but not defined: %s (in method %s)", retryParamsName, methodConfigProto.getName())); return null; } return retryParamsName; }
.equals(methodConfigProto.getPageStreaming())) { pageStreaming = PageStreamingConfig.createPageStreamingFromGapicConfig( } else if (MethodConfigProto.getDefaultInstance().equals(methodConfigProto)) { if (isGrpcStreamingMethod(methodModel)) { if (PageStreamingConfigProto.getDefaultInstance() .equals(methodConfigProto.getGrpcStreaming())) { grpcStreaming = GrpcStreamingConfig.createGrpcStreaming(diagCollector, method); } else { grpcStreaming = GrpcStreamingConfig.createGrpcStreaming( diagCollector, methodConfigProto.getGrpcStreaming(), method); if (grpcStreaming == null) { error = true; if (!FlatteningConfigProto.getDefaultInstance().equals(methodConfigProto.getFlattening())) { flattening = FlatteningConfig.createFlatteningConfigs( if (!BatchingConfigProto.getDefaultInstance().equals(methodConfigProto.getBatching())) { batching = BatchingConfig.createBatching( diagCollector, methodConfigProto.getBatching(), methodModel); if (batching == null) { error = true; long defaultTimeout = methodConfigProto.getTimeoutMillis();
.equals(methodConfigProto.getPageStreaming())) { pageStreaming = PageStreamingConfig.createPageStreamingFromGapicConfig( if (!FlatteningConfigProto.getDefaultInstance().equals(methodConfigProto.getFlattening())) { flattening = FlatteningConfig.createFlatteningConfigs( if (!BatchingConfigProto.getDefaultInstance().equals(methodConfigProto.getBatching())) { batching = BatchingConfig.createBatching( diagCollector, methodConfigProto.getBatching(), methodModel); if (batching == null) { error = true; String retryCodesName = retryCodesConfig.getMethodRetryNames().get(methodConfigProto.getName()); Duration timeout = Duration.ofMillis(methodConfigProto.getTimeoutMillis()); if (timeout.toMillis() <= 0) { diagCollector.addDiag( ImmutableMap.copyOf(methodConfigProto.getFieldNamePatterns()); methodConfigProto.getResourceNameTreatment(); if (defaultResourceNameTreatment == null || defaultResourceNameTreatment.equals(ResourceNameTreatment.UNSET_TREATMENT)) { List<String> requiredFieldsList = Lists.newArrayList(methodConfigProto.getRequiredFieldsList()); if (methodModel.hasExtraFieldMask()) {
MethodConfigProto noConfig = MethodConfigProto.getDefaultInstance(); MethodConfigProto.newBuilder() .setResourceNameTreatment(ResourceNameTreatment.STATIC_TYPES) .build();
/** Find the methods that should be generated on the surface when a GAPIC config was given. */ @Nullable private static ImmutableMap<Method, MethodConfigProto> findMethodsToGenerateWithConfigYaml( Interface apiInterface, InterfaceConfigProto interfaceConfigProto, DiagCollector diagCollector) { ImmutableMap.Builder<Method, MethodConfigProto> methodsToSurface = ImmutableMap.builder(); // Get the set of methods defined by the GAPIC config. Only these methods will be generated. for (MethodConfigProto methodConfigProto : interfaceConfigProto.getMethodsList()) { Interface targetInterface = GapicInterfaceConfig.getTargetInterface( apiInterface, methodConfigProto.getRerouteToGrpcInterface()); Method protoMethod = targetInterface.lookupMethod(methodConfigProto.getName()); if (protoMethod == null) { diagCollector.addDiag( Diag.error( SimpleLocation.TOPLEVEL, "method not found: %s", methodConfigProto.getName())); continue; } methodsToSurface.put(protoMethod, methodConfigProto); } if (diagCollector.getErrorCount() > 0) { return null; } return methodsToSurface.build(); }
methodConfigProto.getResourceNameTreatment(); if (!parameterField.mayBeInResourceName()) { defaultResourceNameTreatment = ResourceNameTreatment.NONE; diagCollector, messageConfigs, methodConfigProto.getFieldNamePatternsMap(), resourceNameConfigs, parameterField,
/** Return a list of configs for method in the order given by the GAPIC interface config. */ static <T> List<T> createMethodConfigs( ImmutableMap<String, T> methodConfigMap, InterfaceConfigProto interfaceConfigProto) { if (interfaceConfigProto.equals(InterfaceConfigProto.getDefaultInstance())) { // InterfaceConfigProto was not given, so just return the order in methodConfigMap. return methodConfigMap.values().asList(); } List<T> methodConfigs = new ArrayList<>(); for (MethodConfigProto methodConfigProto : interfaceConfigProto.getMethodsList()) { methodConfigs.add(methodConfigMap.get(methodConfigProto.getName())); } return methodConfigs; }
/** * Returns a map of a string representing a list of the fields in a flattening, to the flattening * config created from a method in the gapic config. */ private static Map<String, FlatteningConfig> createFlatteningsFromGapicConfig( DiagCollector diagCollector, ResourceNameMessageConfigs messageConfigs, ImmutableMap<String, ResourceNameConfig> resourceNameConfigs, MethodConfigProto methodConfigProto, MethodModel methodModel) { Map<String, FlatteningConfig> flatteningConfigs = new LinkedHashMap<>(); for (FlatteningGroupProto flatteningGroup : methodConfigProto.getFlattening().getGroupsList()) { FlatteningConfig groupConfig = FlatteningConfig.createFlatteningFromConfigProto( diagCollector, messageConfigs, resourceNameConfigs, methodConfigProto, flatteningGroup, methodModel); if (groupConfig != null) { flatteningConfigs.put(flatteningConfigToString(groupConfig), groupConfig); } } if (diagCollector.hasErrors()) { return null; } return flatteningConfigs; }
Method method = lookupMethod(model.getDocument(), methodConfigProto.getName()); if (method == null) { model .addDiag( Diag.error( SimpleLocation.TOPLEVEL, "method not found: %s", methodConfigProto.getName())); continue; continue; methodConfigMapBuilder.put(methodConfigProto.getName(), methodConfig);
ResourceNameTreatment resourceNameTreatment = GapicMethodConfig.defaultResourceNameTreatment( MethodConfigProto.getDefaultInstance(), method.getProtoMethod(), protoParser,