xref: /aosp_15_r20/external/googleapis/google/cloud/cloudcontrolspartner/v1beta/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.v1beta;
18
19import "google/api/field_behavior.proto";
20import "google/api/resource.proto";
21import "google/protobuf/timestamp.proto";
22
23option csharp_namespace = "Google.Cloud.CloudControlsPartner.V1Beta";
24option go_package = "cloud.google.com/go/cloudcontrolspartner/apiv1beta/cloudcontrolspartnerpb;cloudcontrolspartnerpb";
25option java_multiple_files = true;
26option java_outer_classname = "PartnersProto";
27option java_package = "com.google.cloud.cloudcontrolspartner.v1beta";
28option php_namespace = "Google\\Cloud\\CloudControlsPartner\\V1beta";
29option ruby_package = "Google::Cloud::CloudControlsPartner::V1beta";
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: organizations/{organization}/locations/{location}/partner
71  string name = 1 [
72    (google.api.field_behavior) = REQUIRED,
73    (google.api.resource_reference) = {
74      type: "cloudcontrolspartner.googleapis.com/Partner"
75    }
76  ];
77}
78
79// Represents the SKU a partner owns inside Google Cloud to sell to customers.
80message Sku {
81  // Argentum product SKU, that is associated with the partner offerings to
82  // customers used by Syntro for billing purposes. SKUs can represent resold
83  // Google products or support services.
84  string id = 1;
85
86  // Display name of the product identified by the SKU. A partner may want to
87  // show partner branded names for their offerings such as local sovereign
88  // cloud solutions.
89  string display_name = 2;
90}
91
92// Holds information needed by Mudbray to use partner EKMs for workloads.
93message EkmMetadata {
94  // Represents Google Cloud supported external key management partners
95  // [Google Cloud EKM partners
96  // docs](https://cloud.google.com/kms/docs/ekm#supported_partners).
97  enum EkmSolution {
98    // Unspecified EKM solution
99    EKM_SOLUTION_UNSPECIFIED = 0;
100
101    // EKM Partner Fortanix
102    FORTANIX = 1;
103
104    // EKM Partner FutureX
105    FUTUREX = 2;
106
107    // EKM Partner Thales
108    THALES = 3;
109
110    // EKM Partner Virtu
111    VIRTRU = 4;
112  }
113
114  // The Cloud EKM partner.
115  EkmSolution ekm_solution = 1;
116
117  // Endpoint for sending requests to the EKM for key provisioning during
118  // Assured Workload creation.
119  string ekm_endpoint_uri = 2;
120}
121