123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290 |
- // Copyright 2022 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.baremetalsolution.v2;
- import "google/api/annotations.proto";
- import "google/api/client.proto";
- import "google/api/field_behavior.proto";
- import "google/cloud/baremetalsolution/v2/instance.proto";
- import "google/cloud/baremetalsolution/v2/lun.proto";
- import "google/cloud/baremetalsolution/v2/network.proto";
- import "google/cloud/baremetalsolution/v2/nfs_share.proto";
- import "google/cloud/baremetalsolution/v2/volume.proto";
- import "google/longrunning/operations.proto";
- import "google/protobuf/timestamp.proto";
- option csharp_namespace = "Google.Cloud.BareMetalSolution.V2";
- option go_package = "google.golang.org/genproto/googleapis/cloud/baremetalsolution/v2;baremetalsolution";
- option java_multiple_files = true;
- option java_outer_classname = "BareMetalSolutionProto";
- option java_package = "com.google.cloud.baremetalsolution.v2";
- option php_namespace = "Google\\Cloud\\BareMetalSolution\\V2";
- option ruby_package = "Google::Cloud::BareMetalSolution::V2";
- // Performs management operations on Bare Metal Solution servers.
- //
- // The `baremetalsolution.googleapis.com` service provides management
- // capabilities for Bare Metal Solution servers. To access the API methods, you
- // must assign Bare Metal Solution IAM roles containing the desired permissions
- // to your staff in your Google Cloud project. You must also enable the Bare
- // Metal Solution API. Once enabled, the methods act
- // upon specific servers in your Bare Metal Solution environment.
- service BareMetalSolution {
- option (google.api.default_host) = "baremetalsolution.googleapis.com";
- option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
- // List servers in a given project and location.
- rpc ListInstances(ListInstancesRequest) returns (ListInstancesResponse) {
- option (google.api.http) = {
- get: "/v2/{parent=projects/*/locations/*}/instances"
- };
- option (google.api.method_signature) = "parent";
- }
- // Get details about a single server.
- rpc GetInstance(GetInstanceRequest) returns (Instance) {
- option (google.api.http) = {
- get: "/v2/{name=projects/*/locations/*/instances/*}"
- };
- option (google.api.method_signature) = "name";
- }
- // Update details of a single server.
- rpc UpdateInstance(UpdateInstanceRequest) returns (google.longrunning.Operation) {
- option (google.api.http) = {
- patch: "/v2/{instance.name=projects/*/locations/*/instances/*}"
- body: "instance"
- };
- option (google.api.method_signature) = "instance,update_mask";
- option (google.longrunning.operation_info) = {
- response_type: "Instance"
- metadata_type: "OperationMetadata"
- };
- }
- // Perform an ungraceful, hard reset on a server. Equivalent to shutting the
- // power off and then turning it back on.
- rpc ResetInstance(ResetInstanceRequest) returns (google.longrunning.Operation) {
- option (google.api.http) = {
- post: "/v2/{name=projects/*/locations/*/instances/*}:reset"
- body: "*"
- };
- option (google.api.method_signature) = "name";
- option (google.longrunning.operation_info) = {
- response_type: "ResetInstanceResponse"
- metadata_type: "OperationMetadata"
- };
- }
- // Starts a server that was shutdown.
- rpc StartInstance(StartInstanceRequest) returns (google.longrunning.Operation) {
- option (google.api.http) = {
- post: "/v2/{name=projects/*/locations/*/instances/*}:start"
- body: "*"
- };
- option (google.api.method_signature) = "name";
- option (google.longrunning.operation_info) = {
- response_type: "StartInstanceResponse"
- metadata_type: "OperationMetadata"
- };
- }
- // Stop a running server.
- rpc StopInstance(StopInstanceRequest) returns (google.longrunning.Operation) {
- option (google.api.http) = {
- post: "/v2/{name=projects/*/locations/*/instances/*}:stop"
- body: "*"
- };
- option (google.api.method_signature) = "name";
- option (google.longrunning.operation_info) = {
- response_type: "StopInstanceResponse"
- metadata_type: "OperationMetadata"
- };
- }
- // Detach LUN from Instance.
- rpc DetachLun(DetachLunRequest) returns (google.longrunning.Operation) {
- option (google.api.http) = {
- post: "/v2/{instance=projects/*/locations/*/instances/*}:detachLun"
- body: "*"
- };
- option (google.api.method_signature) = "instance,lun";
- option (google.longrunning.operation_info) = {
- response_type: "Instance"
- metadata_type: "OperationMetadata"
- };
- }
- // List storage volumes in a given project and location.
- rpc ListVolumes(ListVolumesRequest) returns (ListVolumesResponse) {
- option (google.api.http) = {
- get: "/v2/{parent=projects/*/locations/*}/volumes"
- };
- option (google.api.method_signature) = "parent";
- }
- // Get details of a single storage volume.
- rpc GetVolume(GetVolumeRequest) returns (Volume) {
- option (google.api.http) = {
- get: "/v2/{name=projects/*/locations/*/volumes/*}"
- };
- option (google.api.method_signature) = "name";
- }
- // Update details of a single storage volume.
- rpc UpdateVolume(UpdateVolumeRequest) returns (google.longrunning.Operation) {
- option (google.api.http) = {
- patch: "/v2/{volume.name=projects/*/locations/*/volumes/*}"
- body: "volume"
- };
- option (google.api.method_signature) = "volume,update_mask";
- option (google.longrunning.operation_info) = {
- response_type: "Volume"
- metadata_type: "OperationMetadata"
- };
- }
- // Emergency Volume resize.
- rpc ResizeVolume(ResizeVolumeRequest) returns (google.longrunning.Operation) {
- option (google.api.http) = {
- post: "/v2/{volume=projects/*/locations/*/volumes/*}:resize"
- body: "*"
- };
- option (google.api.method_signature) = "volume,size_gib";
- option (google.longrunning.operation_info) = {
- response_type: "Volume"
- metadata_type: "OperationMetadata"
- };
- }
- // List network in a given project and location.
- rpc ListNetworks(ListNetworksRequest) returns (ListNetworksResponse) {
- option (google.api.http) = {
- get: "/v2/{parent=projects/*/locations/*}/networks"
- };
- option (google.api.method_signature) = "parent";
- }
- // List all Networks (and used IPs for each Network) in the vendor account
- // associated with the specified project.
- rpc ListNetworkUsage(ListNetworkUsageRequest) returns (ListNetworkUsageResponse) {
- option (google.api.http) = {
- get: "/v2/{location=projects/*/locations/*}/networks:listNetworkUsage"
- };
- option (google.api.method_signature) = "location";
- }
- // Get details of a single network.
- rpc GetNetwork(GetNetworkRequest) returns (Network) {
- option (google.api.http) = {
- get: "/v2/{name=projects/*/locations/*/networks/*}"
- };
- option (google.api.method_signature) = "name";
- }
- // Update details of a single network.
- rpc UpdateNetwork(UpdateNetworkRequest) returns (google.longrunning.Operation) {
- option (google.api.http) = {
- patch: "/v2/{network.name=projects/*/locations/*/networks/*}"
- body: "network"
- };
- option (google.api.method_signature) = "network,update_mask";
- option (google.longrunning.operation_info) = {
- response_type: "Network"
- metadata_type: "OperationMetadata"
- };
- }
- // Get details of a single storage logical unit number(LUN).
- rpc GetLun(GetLunRequest) returns (Lun) {
- option (google.api.http) = {
- get: "/v2/{name=projects/*/locations/*/volumes/*/luns/*}"
- };
- option (google.api.method_signature) = "name";
- }
- // List storage volume luns for given storage volume.
- rpc ListLuns(ListLunsRequest) returns (ListLunsResponse) {
- option (google.api.http) = {
- get: "/v2/{parent=projects/*/locations/*/volumes/*}/luns"
- };
- option (google.api.method_signature) = "parent";
- }
- // Get details of a single NFS share.
- rpc GetNfsShare(GetNfsShareRequest) returns (NfsShare) {
- option (google.api.http) = {
- get: "/v2/{name=projects/*/locations/*/nfsShares/*}"
- };
- option (google.api.method_signature) = "name";
- }
- // List NFS shares.
- rpc ListNfsShares(ListNfsSharesRequest) returns (ListNfsSharesResponse) {
- option (google.api.http) = {
- get: "/v2/{parent=projects/*/locations/*}/nfsShares"
- };
- option (google.api.method_signature) = "parent";
- }
- // Update details of a single NFS share.
- rpc UpdateNfsShare(UpdateNfsShareRequest) returns (google.longrunning.Operation) {
- option (google.api.http) = {
- patch: "/v2/{nfs_share.name=projects/*/locations/*/nfsShares/*}"
- body: "nfs_share"
- };
- option (google.api.method_signature) = "nfs_share,update_mask";
- option (google.longrunning.operation_info) = {
- response_type: "NfsShare"
- metadata_type: "OperationMetadata"
- };
- }
- }
- // Represents the metadata from a long-running operation.
- message OperationMetadata {
- // The time the operation was created.
- google.protobuf.Timestamp create_time = 1
- [(google.api.field_behavior) = OUTPUT_ONLY];
- // The time the operation finished running.
- google.protobuf.Timestamp end_time = 2
- [(google.api.field_behavior) = OUTPUT_ONLY];
- // Server-defined resource path for the target of the operation.
- string target = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Name of the action executed by the operation.
- string verb = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Human-readable status of the operation, if any.
- string status_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Identifies whether the user requested the cancellation
- // of the operation. Operations that have been successfully cancelled
- // have [Operation.error][] value with a [google.rpc.Status.code][] of 1,
- // corresponding to `Code.CANCELLED`.
- bool requested_cancellation = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
- // API version used with the operation.
- string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
- }
- // Response message from resetting a server.
- message ResetInstanceResponse {
- }
|