// 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.netapp.v1;

import "google/api/field_behavior.proto";
import "google/protobuf/struct.proto";

option csharp_namespace = "Google.Cloud.NetApp.V1";
option go_package = "cloud.google.com/go/netapp/apiv1/netapppb;netapppb";
option java_multiple_files = true;
option java_outer_classname = "OntapProto";
option java_package = "com.google.cloud.netapp.v1";
option php_namespace = "Google\\Cloud\\NetApp\\V1";
option ruby_package = "Google::Cloud::NetApp::V1";

// Request message for `ExecuteOntapPost` API.
message ExecuteOntapPostRequest {
  // Required. The raw `JSON` body of the request.
  // The body should be in the format of the ONTAP resource.
  // For example:
  // ```
  // {
  //   "body": {
  //     "field1": "value1",
  //     "field2": "value2",
  //   }
  // }
  // ```
  google.protobuf.Struct body = 2 [(google.api.field_behavior) = REQUIRED];

  // Required. The resource path of the ONTAP resource.
  // Format:
  // `projects/{project_number}/locations/{location_id}/storagePools/{storage_pool_id}/ontap/{ontap_resource_path}`.
  // For example:
  // `projects/123456789/locations/us-central1/storagePools/my-storage-pool/ontap/api/storage/volumes`.
  string ontap_path = 3 [(google.api.field_behavior) = REQUIRED];
}

// Response message for `ExecuteOntapPost` API.
message ExecuteOntapPostResponse {
  // The raw `JSON` body of the response.
  google.protobuf.Struct body = 1;
}

// Request message for `ExecuteOntapGet` API.
message ExecuteOntapGetRequest {
  // Required. The resource path of the ONTAP resource.
  // Format:
  // `projects/{project_number}/locations/{location_id}/storagePools/{storage_pool_id}/ontap/{ontap_resource_path}`.
  // For example:
  // `projects/123456789/locations/us-central1/storagePools/my-storage-pool/ontap/api/storage/volumes`.
  string ontap_path = 1 [(google.api.field_behavior) = REQUIRED];
}

// Response message for `ExecuteOntapGet` API.
message ExecuteOntapGetResponse {
  // The raw `JSON` body of the response.
  google.protobuf.Struct body = 1;
}

// Request message for `ExecuteOntapDelete` API.
message ExecuteOntapDeleteRequest {
  // Required. The resource path of the ONTAP resource.
  // Format:
  // `projects/{project_number}/locations/{location_id}/storagePools/{storage_pool_id}/ontap/{ontap_resource_path}`.
  // For example:
  // `projects/123456789/locations/us-central1/storagePools/my-storage-pool/ontap/api/storage/volumes`.
  string ontap_path = 2 [(google.api.field_behavior) = REQUIRED];
}

// Response message for `ExecuteOntapDelete` API.
message ExecuteOntapDeleteResponse {
  // The raw `JSON` body of the response.
  google.protobuf.Struct body = 1;
}

// Request message for `ExecuteOntapPatch` API.
message ExecuteOntapPatchRequest {
  // Required. The raw `JSON` body of the request.
  // The body should be in the format of the ONTAP resource.
  // For example:
  // ```
  // {
  //   "body": {
  //     "field1": "value1",
  //     "field2": "value2",
  //   }
  // }
  // ```
  google.protobuf.Struct body = 2 [(google.api.field_behavior) = REQUIRED];

  // Required. The resource path of the ONTAP resource.
  // Format:
  // `projects/{project_number}/locations/{location_id}/storagePools/{storage_pool_id}/ontap/{ontap_resource_path}`.
  // For example:
  // `projects/123456789/locations/us-central1/storagePools/my-storage-pool/ontap/api/storage/volumes`.
  string ontap_path = 3 [(google.api.field_behavior) = REQUIRED];
}

// Response message for `ExecuteOntapPatch` API.
message ExecuteOntapPatchResponse {
  // The raw `JSON` body of the response.
  google.protobuf.Struct body = 1;
}
