feat: add v1beta public clients for AppOptimize API

PiperOrigin-RevId: 895558469
This commit is contained in:
Google APIs 2026-04-06 16:33:57 -07:00 committed by Copybara-Service
parent afb6d4b368
commit cd090841ab
5 changed files with 950 additions and 6 deletions

View file

@ -1,16 +1,15 @@
exports_files(glob(["*.yaml"]))
load(
"@com_google_googleapis_imports//:imports.bzl",
"nodejs_gapic_combined_pkg"
"nodejs_gapic_combined_pkg",
)
exports_files(glob(["*.yaml"]))
nodejs_gapic_combined_pkg(
name = "google-cloud-appoptimize-nodejs",
default_version = "v1alpha",
default_version = "v1beta",
templates_excludes = ["package.json"],
deps = [
"//google/cloud/appoptimize/v1alpha:appoptimize-v1alpha-nodejs",
"//google/cloud/appoptimize/v1beta:appoptimize-v1beta-nodejs",
],
)
)

View file

@ -0,0 +1,394 @@
# This file was automatically generated by BuildFileGenerator
# https://github.com/googleapis/rules_gapic/tree/master/bazel
# Most of the manual changes to this file will be overwritten.
# It's **only** allowed to change the following rule attribute values:
# - names of *_gapic_assembly_* rules
# - certain parameters of *_gapic_library rules, including but not limited to:
# * extra_protoc_parameters
# * extra_protoc_file_parameters
# The complete list of preserved parameters can be found in the source code.
# buildifier: disable=load-on-top
# This is an API workspace, having public visibility by default makes perfect sense.
package(default_visibility = ["//visibility:public"])
##############################################################################
# Common
##############################################################################
# buildifier: disable=same-origin-load
load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info")
load("@rules_proto//proto:defs.bzl", "proto_library")
proto_library(
name = "appoptimize_proto",
srcs = [
"app_optimize.proto",
],
deps = [
"//google/api:annotations_proto",
"//google/api:client_proto",
"//google/api:field_behavior_proto",
"//google/api:resource_proto",
"//google/longrunning:operations_proto",
"@com_google_protobuf//:empty_proto",
"@com_google_protobuf//:struct_proto",
"@com_google_protobuf//:timestamp_proto",
],
)
proto_library_with_info(
name = "appoptimize_proto_with_info",
deps = [
":appoptimize_proto",
"//google/cloud:common_resources_proto",
"//google/cloud/location:location_proto",
],
)
##############################################################################
# Java
##############################################################################
# buildifier: disable=same-origin-load
load(
"@com_google_googleapis_imports//:imports.bzl",
"java_gapic_assembly_gradle_pkg",
"java_gapic_library",
"java_gapic_test",
"java_grpc_library",
"java_proto_library",
)
java_proto_library(
name = "appoptimize_java_proto",
deps = [":appoptimize_proto"],
)
java_grpc_library(
name = "appoptimize_java_grpc",
srcs = [":appoptimize_proto"],
deps = [":appoptimize_java_proto"],
)
java_gapic_library(
name = "appoptimize_java_gapic",
srcs = [":appoptimize_proto_with_info"],
gapic_yaml = None,
grpc_service_config = "appoptimize_v1beta_grpc_service_config.json",
rest_numeric_enums = True,
service_yaml = "appoptimize_v1beta.yaml",
test_deps = [
":appoptimize_java_grpc",
"//google/cloud/location:location_java_grpc",
],
transport = "grpc+rest",
deps = [
":appoptimize_java_proto",
"//google/api:api_java_proto",
"//google/cloud/location:location_java_proto",
],
)
java_gapic_test(
name = "appoptimize_java_gapic_test_suite",
test_classes = [
"com.google.cloud.appoptimize.v1beta.AppOptimizeClientHttpJsonTest",
"com.google.cloud.appoptimize.v1beta.AppOptimizeClientTest",
],
runtime_deps = [":appoptimize_java_gapic_test"],
)
# Open Source Packages
java_gapic_assembly_gradle_pkg(
name = "google-cloud-appoptimize-v1beta-java",
include_samples = True,
transport = "grpc+rest",
deps = [
":appoptimize_java_gapic",
":appoptimize_java_grpc",
":appoptimize_java_proto",
":appoptimize_proto",
],
)
##############################################################################
# Go
##############################################################################
# buildifier: disable=same-origin-load
load(
"@com_google_googleapis_imports//:imports.bzl",
"go_gapic_assembly_pkg",
"go_gapic_library",
"go_grpc_library",
)
go_grpc_library(
name = "appoptimize_go_proto",
importpath = "cloud.google.com/go/appoptimize/apiv1beta/appoptimizepb",
protos = [":appoptimize_proto"],
deps = [
"//google/api:annotations_go_proto",
"//google/longrunning:longrunning_go_proto",
],
)
go_gapic_library(
name = "appoptimize_go_gapic",
srcs = [":appoptimize_proto_with_info"],
grpc_service_config = "appoptimize_v1beta_grpc_service_config.json",
importpath = "cloud.google.com/go/appoptimize/apiv1beta;appoptimize",
metadata = True,
release_level = "beta",
rest_numeric_enums = True,
service_yaml = "appoptimize_v1beta.yaml",
transport = "grpc+rest",
deps = [
":appoptimize_go_proto",
"//google/cloud/location:location_go_proto",
"//google/longrunning:longrunning_go_proto",
"@com_google_cloud_go_longrunning//:go_default_library",
"@com_google_cloud_go_longrunning//autogen:go_default_library",
"@io_bazel_rules_go//proto/wkt:struct_go_proto",
],
)
# Open Source Packages
go_gapic_assembly_pkg(
name = "gapi-cloud-appoptimize-v1beta-go",
deps = [
":appoptimize_go_gapic",
":appoptimize_go_gapic_srcjar-metadata.srcjar",
":appoptimize_go_gapic_srcjar-snippets.srcjar",
":appoptimize_go_gapic_srcjar-test.srcjar",
":appoptimize_go_proto",
],
)
##############################################################################
# Python
##############################################################################
# buildifier: disable=same-origin-load
load(
"@com_google_googleapis_imports//:imports.bzl",
"py_gapic_assembly_pkg",
"py_gapic_library",
"py_test",
)
py_gapic_library(
name = "appoptimize_py_gapic",
srcs = [":appoptimize_proto"],
grpc_service_config = "appoptimize_v1beta_grpc_service_config.json",
rest_numeric_enums = True,
service_yaml = "appoptimize_v1beta.yaml",
transport = "grpc+rest",
deps = [
],
)
py_test(
name = "appoptimize_py_gapic_test",
srcs = [
"appoptimize_py_gapic_pytest.py",
"appoptimize_py_gapic_test.py",
],
legacy_create_init = False,
deps = [":appoptimize_py_gapic"],
)
# Open Source Packages
py_gapic_assembly_pkg(
name = "appoptimize-v1beta-py",
deps = [
":appoptimize_py_gapic",
],
)
##############################################################################
# PHP
##############################################################################
# buildifier: disable=same-origin-load
load(
"@com_google_googleapis_imports//:imports.bzl",
"php_gapic_assembly_pkg",
"php_gapic_library",
"php_proto_library",
)
php_proto_library(
name = "appoptimize_php_proto",
deps = [":appoptimize_proto"],
)
php_gapic_library(
name = "appoptimize_php_gapic",
srcs = [":appoptimize_proto_with_info"],
grpc_service_config = "appoptimize_v1beta_grpc_service_config.json",
migration_mode = "NEW_SURFACE_ONLY",
rest_numeric_enums = True,
service_yaml = "appoptimize_v1beta.yaml",
transport = "grpc+rest",
deps = [
":appoptimize_php_proto",
],
)
# Open Source Packages
php_gapic_assembly_pkg(
name = "google-cloud-appoptimize-v1beta-php",
deps = [
":appoptimize_php_gapic",
":appoptimize_php_proto",
],
)
##############################################################################
# Node.js
##############################################################################
# buildifier: disable=same-origin-load
load(
"@com_google_googleapis_imports//:imports.bzl",
"nodejs_gapic_assembly_pkg",
"nodejs_gapic_library",
)
nodejs_gapic_library(
name = "appoptimize_nodejs_gapic",
package_name = "@google-cloud/appoptimize",
src = ":appoptimize_proto_with_info",
extra_protoc_parameters = ["metadata"],
grpc_service_config = "appoptimize_v1beta_grpc_service_config.json",
package = "google.cloud.appoptimize.v1beta",
rest_numeric_enums = True,
service_yaml = "appoptimize_v1beta.yaml",
transport = "grpc+rest",
deps = [],
)
nodejs_gapic_assembly_pkg(
name = "appoptimize-v1beta-nodejs",
deps = [
":appoptimize_nodejs_gapic",
":appoptimize_proto",
],
)
##############################################################################
# Ruby
##############################################################################
# buildifier: disable=same-origin-load
load(
"@com_google_googleapis_imports//:imports.bzl",
"ruby_cloud_gapic_library",
"ruby_gapic_assembly_pkg",
"ruby_grpc_library",
"ruby_proto_library",
)
ruby_proto_library(
name = "appoptimize_ruby_proto",
deps = [":appoptimize_proto"],
)
ruby_grpc_library(
name = "appoptimize_ruby_grpc",
srcs = [":appoptimize_proto"],
deps = [":appoptimize_ruby_proto"],
)
ruby_cloud_gapic_library(
name = "appoptimize_ruby_gapic",
srcs = [":appoptimize_proto_with_info"],
extra_protoc_parameters = [
"ruby-cloud-gem-name=google-cloud-app_optimize-v1beta",
],
grpc_service_config = "appoptimize_v1beta_grpc_service_config.json",
rest_numeric_enums = True,
service_yaml = "appoptimize_v1beta.yaml",
transport = "grpc+rest",
deps = [
":appoptimize_ruby_grpc",
":appoptimize_ruby_proto",
],
)
# Open Source Packages
ruby_gapic_assembly_pkg(
name = "google-cloud-appoptimize-v1beta-ruby",
deps = [
":appoptimize_ruby_gapic",
":appoptimize_ruby_grpc",
":appoptimize_ruby_proto",
],
)
##############################################################################
# C#
##############################################################################
# buildifier: disable=same-origin-load
load(
"@com_google_googleapis_imports//:imports.bzl",
"csharp_gapic_assembly_pkg",
"csharp_gapic_library",
"csharp_grpc_library",
"csharp_proto_library",
)
csharp_proto_library(
name = "appoptimize_csharp_proto",
extra_opts = [],
deps = [":appoptimize_proto"],
)
csharp_grpc_library(
name = "appoptimize_csharp_grpc",
srcs = [":appoptimize_proto"],
deps = [":appoptimize_csharp_proto"],
)
csharp_gapic_library(
name = "appoptimize_csharp_gapic",
srcs = [":appoptimize_proto_with_info"],
common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json",
grpc_service_config = "appoptimize_v1beta_grpc_service_config.json",
rest_numeric_enums = True,
service_yaml = "appoptimize_v1beta.yaml",
transport = "grpc+rest",
deps = [
":appoptimize_csharp_grpc",
":appoptimize_csharp_proto",
],
)
# Open Source Packages
csharp_gapic_assembly_pkg(
name = "google-cloud-appoptimize-v1beta-csharp",
deps = [
":appoptimize_csharp_gapic",
":appoptimize_csharp_grpc",
":appoptimize_csharp_proto",
],
)
##############################################################################
# C++
##############################################################################
# buildifier: disable=same-origin-load
load(
"@com_google_googleapis_imports//:imports.bzl",
"cc_grpc_library",
"cc_proto_library",
)
cc_proto_library(
name = "appoptimize_cc_proto",
deps = [":appoptimize_proto"],
)
cc_grpc_library(
name = "appoptimize_cc_grpc",
srcs = [":appoptimize_proto"],
grpc_only = True,
deps = [":appoptimize_cc_proto"],
)

View file

@ -0,0 +1,407 @@
// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.appoptimize.v1beta;
import "google/api/annotations.proto";
import "google/api/client.proto";
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/longrunning/operations.proto";
import "google/protobuf/empty.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto";
option go_package = "cloud.google.com/go/appoptimize/apiv1beta/appoptimizepb;appoptimizepb";
option java_multiple_files = true;
option java_outer_classname = "AppOptimizeProto";
option java_package = "com.google.cloud.appoptimize.v1beta";
// Resource definition for App Hub Application.
option (google.api.resource_definition) = {
type: "apphub.googleapis.com/Application"
pattern: "projects/{project}/locations/{location}/applications/{application}"
};
// Service for managing and querying optimization reports.
service AppOptimize {
option (google.api.default_host) = "appoptimize.googleapis.com";
option (google.api.oauth_scopes) =
"https://www.googleapis.com/auth/cloud-platform";
// Creates a new report.
//
// This initiates a long-running operation that, upon completion, results
// in a report resource. Once the report is created, its results can be read
// via `ReadReport`.
rpc CreateReport(CreateReportRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta/{parent=projects/*/locations/*}/reports"
body: "report"
};
option (google.api.method_signature) = "parent,report,report_id";
option (google.longrunning.operation_info) = {
response_type: "Report"
metadata_type: "OperationMetadata"
};
}
// Retrieves the details of a report configuration.
rpc GetReport(GetReportRequest) returns (Report) {
option (google.api.http) = {
get: "/v1beta/{name=projects/*/locations/*/reports/*}"
};
option (google.api.method_signature) = "name";
}
// Lists reports within a given project.
rpc ListReports(ListReportsRequest) returns (ListReportsResponse) {
option (google.api.http) = {
get: "/v1beta/{parent=projects/*/locations/*}/reports"
};
option (google.api.method_signature) = "parent";
}
// Deletes the specified report.
rpc DeleteReport(DeleteReportRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/v1beta/{name=projects/*/locations/*/reports/*}"
};
option (google.api.method_signature) = "name";
}
// Reads data within a specified report.
rpc ReadReport(ReadReportRequest) returns (ReadReportResponse) {
option (google.api.http) = {
post: "/v1beta/{name=projects/*/locations/*/reports/*}:read"
body: "*"
};
option (google.api.method_signature) = "name";
}
}
// Request message for the `CreateReport` method.
message CreateReportRequest {
// Required. The parent Google Cloud project that will own the report.
//
// This value does not define the scope of the report data. See `Report.scope`
// for setting the data scope.
//
// Format: `projects/{project}/locations/{location}`.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "appoptimize.googleapis.com/Report"
}
];
// Required. The ID to use for this report. This ID must be unique within
// the parent project and should comply with RFC 1034 restrictions (letters,
// numbers, and hyphen, with the first character a letter, the last a letter
// or a number, and a 63 character maximum).
string report_id = 2 [(google.api.field_behavior) = REQUIRED];
// Required. The report resource to create.
Report report = 3 [(google.api.field_behavior) = REQUIRED];
}
// A configuration that defines the parameters for the data represented by a
// report.
message Report {
option (google.api.resource) = {
type: "appoptimize.googleapis.com/Report"
pattern: "projects/{project}/locations/{location}/reports/{report}"
plural: "reports"
singular: "report"
};
// Defines this report's expiration time.
oneof expiration {
// Output only. Timestamp in UTC of when this report expires. Once the
// report expires, it will no longer be accessible and the report's
// underlying data will be deleted.
google.protobuf.Timestamp expire_time = 6
[(google.api.field_behavior) = OUTPUT_ONLY];
}
// Identifier. The name of this report.
string name = 1 [(google.api.field_behavior) = IDENTIFIER];
// Required. A list of dimensions to include in the report. Supported values:
//
// * `project`
// * `application`
// * `service_or_workload`
// * `resource`
// * `resource_type`
// * `location`
// * `product_display_name`
// * `sku`
// * `month`
// * `day`
// * `hour`
//
// To aggregate results by time, specify at least one time dimension
// (`month`, `day`, or `hour`). All time dimensions use Pacific Time,
// respect Daylight Saving Time (DST), and follow these ISO 8601 formats:
//
// * `month`: `YYYY-MM` (e.g., `2024-01`)
// * `day`: `YYYY-MM-DD` (e.g., `2024-01-10`)
// * `hour`: `YYYY-MM-DDTHH` (e.g., `2024-01-10T00`)
//
// If the time range filter does not align with the selected time dimension,
// the range is expanded to encompass the full period of the finest-grained
// time dimension.
//
// For example, if the filter is `2026-01-10` through `2026-01-12` and the
// `month` dimension is selected, the effective time range expands to include
// all of January (`2026-01-01` to `2026-02-01`).
repeated string dimensions = 2 [(google.api.field_behavior) = REQUIRED];
// Required. A list of metrics to include in the report. Supported values:
//
// * `cost`
// * `cpu_mean_utilization`
// * `cpu_usage_core_seconds`
// * `cpu_allocation_core_seconds`
// * `cpu_p95_utilization`
// * `memory_mean_utilization`
// * `memory_usage_byte_seconds`
// * `memory_allocation_byte_seconds`
// * `memory_p95_utilization`
repeated string metrics = 7 [(google.api.field_behavior) = REQUIRED];
// Optional. The resource containers for which to fetch data. Default is the
// project specified in the report's parent.
repeated Scope scopes = 3 [(google.api.field_behavior) = OPTIONAL];
// Optional. A Common Expression Language (CEL) expression used to filter the
// data for the report.
//
// Predicates may refer to any dimension. Filtering must conform to these
// constraints:
//
// * All string field predicates must use exact string matches.
// * Multiple predicates referring to the same string field must be joined
// using the logical OR operator ('||').
// * All other predicates must be joined using the logical AND operator
// (`&&`).
// * A predicate on a time dimension (e.g., `day`) specifying the start time
// must use a greater-than-or-equal-to comparison (`>=`).
// * A predicate on a time dimension specifying the end time must use a
// less-than comparison (`<`).
//
// Examples:
//
// 1. Filter by a specific resource type:
// `"resource_type == 'compute.googleapis.com/Instance'"`
//
// 2. Filter data points that fall within a specific absolute time interval:
// `"hour >= timestamp('2024-01-01T00:00:00Z') &&
// hour < timestamp('2024-02-01T00:00:00Z')"`
//
// 3. Filter data points that fall within the past 72 hours:
// `"hour >= now - duration('72h')"`
//
// 4. Combine string predicate with time interval predicate:
// `"(location == 'us-east1' || location == 'us-west1') &&
// hour >= timestamp('2023-12-01T00:00:00Z') &&
// hour < timestamp('2024-02-01T00:00:00Z')"`
//
// If the filter omits time dimensions (`month`, `day`, `hour`), the report
// defaults to a 7-day range ending at the previous Pacific Time midnight,
// with Daylight Saving Time (DST) applied.
//
// For example, if the current Pacific Time is `2026-01-05T12:00:00`,
// the default range is `2025-12-29T00:00:00` to `2026-01-05T00:00:00` Pacific
// time.
string filter = 4 [(google.api.field_behavior) = OPTIONAL];
}
// Specifies the report scope.
message Scope {
oneof scope {
// Required. A Google Cloud Platform project to fetch data from.
//
// Format: `"projects/{project}"`.
string project = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "cloudresourcemanager.googleapis.com/Project"
}
];
// Required. An App Hub Application to fetch data from.
//
// Format:
// `"projects/{project}/locations/{location}/applications/{application}"`.
string application = 2 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "apphub.googleapis.com/Application"
}
];
}
}
// Request message for the `GetReport` method.
message GetReportRequest {
// Required. The name of the report to retrieve.
//
// Format: `projects/{project}/locations/{location}/reports/{report_id}`.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "appoptimize.googleapis.com/Report"
}
];
}
// Request message for the `ListReports` method.
message ListReportsRequest {
// Required. The parent project whose reports are to be listed.
//
// Format: `projects/{project}/locations/{location}`.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "appoptimize.googleapis.com/Report"
}
];
// Optional. The maximum number of reports to return. The service may return
// fewer than this value. If unspecified, the server will determine the number
// of results to return.
int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. A page token, received from a previous `ListReports` call.
// Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to `ListReports` must match
// the call that provided the page token.
string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
}
// Response message for the `ListReports` method.
message ListReportsResponse {
// The list of reports.
repeated Report reports = 1;
// A token that can be sent as `page_token` to retrieve the next page.
// If this field is empty, there are no subsequent pages.
string next_page_token = 2;
}
// Request message for the `DeleteReport` method.
message DeleteReportRequest {
// Required. The name of the report to delete.
//
// Format: `projects/{project}/locations/{location}/reports/{report_id}`.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "appoptimize.googleapis.com/Report"
}
];
// Optional. If set to true, and the report is not found, the request will
// succeed but no action will be taken on the server.
bool allow_missing = 2 [(google.api.field_behavior) = OPTIONAL];
}
// Request message for the `ReadReport` method.
message ReadReportRequest {
// Required. The resource name of the report to query.
//
// Format: `projects/{project}/locations/{location}/reports/{report_id}`.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "appoptimize.googleapis.com/Report"
}
];
// Optional. The maximum number of rows to return. The service may return
// fewer than this value. If unspecified, at most 10,000 rows will be returned
// per page. The maximum allowed value is 25,000; values above 25,000 are
// coerced to 25,000.
int32 page_size = 4 [(google.api.field_behavior) = OPTIONAL];
// Optional. A page token, received from a previous `ReadReport` call, to
// retrieve the subsequent page of results. When `page_token` is specified,
// `job_reference` must also be provided from the previous response, and the
// `statement` field must not be set.
string page_token = 5 [(google.api.field_behavior) = OPTIONAL];
}
// Response message for the `ReadReport` method.
message ReadReportResponse {
// A list of rows, where each row represents a record from the report.
repeated google.protobuf.ListValue rows = 1;
// The columns describing the structure of the data in the `rows` field.
repeated Column columns = 5;
// A token that can be sent as `page_token` in a subsequent `ReadReport`
// request to retrieve the next page of results. If this field is empty,
// there are no further pages.
string next_page_token = 3;
}
// Describes a single column within `Columns`.
message Column {
// The name of the column.
//
// This field:
//
// * Contains only letters (a-z, A-Z), numbers (0-9), or underscores (_);
// * Start with a letter or underscore; and
// * Has a maximum length is 128 characters.
string name = 1;
// The data type of the column.
//
// Supported values include:
//
// * `STRING`
// * `INT64`
// * `FLOAT64`
// * `BOOLEAN`
// * `TIMESTAMP`
// * `RECORD`
//
// `RECORD` indicates that the field contains a nested schema, described in
// the `columns` property of this `Column`.
string type = 2;
// The mode of the column, indicating if it is nullable, required, or
// repeated.
//
// Possible values:
//
// * `NULLABLE`: The column allows NULL values.
// * `REQUIRED`: The column does not allow NULL values.
// * `REPEATED`: The column contains an array of values.
string mode = 3;
// If the `type` of this column is `RECORD`, this sub-field describes the
// nested structure.
repeated Column columns = 4;
}
// Represents metadata related to the creation of a Report. This value is
// embedded in the Operation object returned by `CreateReport`.
message OperationMetadata {}

View file

@ -0,0 +1,120 @@
type: google.api.Service
config_version: 3
name: appoptimize.googleapis.com
title: App Optimize API
apis:
- name: google.cloud.appoptimize.v1beta.AppOptimize
- name: google.cloud.location.Locations
- name: google.longrunning.Operations
types:
- name: google.cloud.appoptimize.v1beta.OperationMetadata
documentation:
summary: |-
The App Optimize API provides developers and platform teams with tools to
monitor, analyze, and improve the performance and cost-efficiency of their
cloud applications.
rules:
- selector: google.cloud.location.Locations.GetLocation
description: Gets information about a location.
- selector: google.cloud.location.Locations.ListLocations
description: |-
Lists information about the supported locations for this service.
This method lists locations based on the resource scope provided in
the [ListLocationsRequest.name] field:
* **Global locations**: If `name` is empty, the method lists the
public locations available to all projects. * **Project-specific
locations**: If `name` follows the format
`projects/{project}`, the method lists locations visible to that
specific project. This includes public, private, or other
project-specific locations enabled for the project.
For gRPC and client library implementations, the resource name is
passed as the `name` field. For direct service calls, the resource
name is
incorporated into the request path based on the specific service
implementation and version.
http:
rules:
- selector: google.cloud.location.Locations.GetLocation
get: '/v1beta/{name=projects/*/locations/*}'
- selector: google.cloud.location.Locations.ListLocations
get: '/v1beta/{name=projects/*}/locations'
- selector: google.longrunning.Operations.CancelOperation
post: '/v1beta/{name=projects/*/locations/*/operations/*}:cancel'
body: '*'
- selector: google.longrunning.Operations.DeleteOperation
delete: '/v1beta/{name=projects/*/locations/*/operations/*}'
- selector: google.longrunning.Operations.GetOperation
get: '/v1beta/{name=projects/*/locations/*/operations/*}'
- selector: google.longrunning.Operations.ListOperations
get: '/v1beta/{name=projects/*/locations/*}/operations'
authentication:
rules:
- selector: 'google.cloud.appoptimize.v1beta.AppOptimize.*'
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
- selector: google.cloud.location.Locations.GetLocation
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
- selector: google.cloud.location.Locations.ListLocations
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
- selector: 'google.longrunning.Operations.*'
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
publishing:
new_issue_uri: https://issuetracker.google.com/issues/new?component=190865&template=1161103
documentation_uri: https://docs.cloud.google.com/app-optimize/overview
api_short_name: appoptimize
github_label: 'api: appoptimize'
doc_tag_prefix: appoptimize
organization: CLOUD
library_settings:
- version: google.cloud.appoptimize.v1beta
launch_stage: BETA
java_settings:
common:
destinations:
- PACKAGE_MANAGER
cpp_settings:
common:
destinations:
- PACKAGE_MANAGER
php_settings:
common:
destinations:
- PACKAGE_MANAGER
python_settings:
common:
destinations:
- PACKAGE_MANAGER
node_settings:
common:
destinations:
- PACKAGE_MANAGER
dotnet_settings:
common:
destinations:
- PACKAGE_MANAGER
ruby_settings:
common:
destinations:
- PACKAGE_MANAGER
go_settings:
common:
destinations:
- PACKAGE_MANAGER
proto_reference_documentation_uri: https://docs.cloud.google.com/app-optimize/overview

View file

@ -0,0 +1,24 @@
{
"methodConfig": [{
"name": [
{ "service": "google.cloud.appoptimize.v1beta.AppOptimize", "method": "ListReports" },
{ "service": "google.cloud.appoptimize.v1beta.AppOptimize", "method": "GetReport" },
{ "service": "google.cloud.appoptimize.v1beta.AppOptimize", "method": "ReadReport" }
],
"timeout": "60s",
"retryPolicy": {
"maxAttempts": 5,
"initialBackoff": "1s",
"maxBackoff": "10s",
"backoffMultiplier": 1.3,
"retryableStatusCodes": ["UNAVAILABLE"]
}
},
{
"name": [
{ "service": "google.cloud.appoptimize.v1beta.AppOptimize", "method": "CreateReport" },
{ "service": "google.cloud.appoptimize.v1beta.AppOptimize", "method": "DeleteReport" }
],
"timeout": "60s"
}]
}