xref: /aosp_15_r20/external/googleapis/google/cloud/cloudcontrolspartner/v1/partners.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1// Copyright 2023 Google LLC
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15syntax = "proto3";
16
17package google.cloud.cloudcontrolspartner.v1;
18
19import "google/api/field_behavior.proto";
20import "google/api/resource.proto";
21import "google/protobuf/timestamp.proto";
22
23option csharp_namespace = "Google.Cloud.CloudControlsPartner.V1";
24option go_package = "cloud.google.com/go/cloudcontrolspartner/apiv1/cloudcontrolspartnerpb;cloudcontrolspartnerpb";
25option java_multiple_files = true;
26option java_outer_classname = "PartnersProto";
27option java_package = "com.google.cloud.cloudcontrolspartner.v1";
28option php_namespace = "Google\\Cloud\\CloudControlsPartner\\V1";
29option ruby_package = "Google::Cloud::CloudControlsPartner::V1";
30
31// Message describing Partner resource
32message Partner {
33  option (google.api.resource) = {
34    type: "cloudcontrolspartner.googleapis.com/Partner"
35    pattern: "organizations/{organization}/locations/{location}/partner"
36    singular: "partner"
37  };
38
39  // Identifier. The resource name of the partner.
40  // Format: `organizations/{organization}/locations/{location}/partner`
41  // Example: "organizations/123456/locations/us-central1/partner"
42  string name = 1 [(google.api.field_behavior) = IDENTIFIER];
43
44  // List of SKUs the partner is offering
45  repeated Sku skus = 3;
46
47  // List of Google Cloud supported EKM partners supported by the partner
48  repeated EkmMetadata ekm_solutions = 4;
49
50  // List of Google Cloud regions that the partner sells services to customers.
51  // Valid Google Cloud regions found here:
52  // https://cloud.google.com/compute/docs/regions-zones
53  repeated string operated_cloud_regions = 5;
54
55  // Google Cloud project ID in the partner's Google Cloud organization for
56  // receiving enhanced Logs for Partners.
57  string partner_project_id = 7;
58
59  // Output only. Time the resource was created
60  google.protobuf.Timestamp create_time = 9
61      [(google.api.field_behavior) = OUTPUT_ONLY];
62
63  // Output only. The last time the resource was updated
64  google.protobuf.Timestamp update_time = 10
65      [(google.api.field_behavior) = OUTPUT_ONLY];
66}
67
68// Message for getting a Partner
69message GetPartnerRequest {
70  // Required. Format:
71  // `organizations/{organization}/locations/{location}/partner`
72  string name = 1 [
73    (google.api.field_behavior) = REQUIRED,
74    (google.api.resource_reference) = {
75      type: "cloudcontrolspartner.googleapis.com/Partner"
76    }
77  ];
78}
79
80// Represents the SKU a partner owns inside Google Cloud to sell to customers.
81message Sku {
82  // Argentum product SKU, that is associated with the partner offerings to
83  // customers used by Syntro for billing purposes. SKUs can represent resold
84  // Google products or support services.
85  string id = 1;
86
87  // Display name of the product identified by the SKU. A partner may want to
88  // show partner branded names for their offerings such as local sovereign
89  // cloud solutions.
90  string display_name = 2;
91}
92
93// Holds information needed by Mudbray to use partner EKMs for workloads.
94message EkmMetadata {
95  // Represents Google Cloud supported external key management partners
96  // [Google Cloud EKM partners
97  // docs](https://cloud.google.com/kms/docs/ekm#supported_partners).
98  enum EkmSolution {
99    // Unspecified EKM solution
100    EKM_SOLUTION_UNSPECIFIED = 0;
101
102    // EKM Partner Fortanix
103    FORTANIX = 1;
104
105    // EKM Partner FutureX
106    FUTUREX = 2;
107
108    // EKM Partner Thales
109    THALES = 3;
110
111    // EKM Partner Virtu
112    VIRTRU = 4;
113  }
114
115  // The Cloud EKM partner.
116  EkmSolution ekm_solution = 1;
117
118  // Endpoint for sending requests to the EKM for key provisioning during
119  // Assured Workload creation.
120  string ekm_endpoint_uri = 2;
121}
122