service.proto 44 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870
  1. // Copyright 2020 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. syntax = "proto3";
  15. package google.cloud.security.privateca.v1beta1;
  16. import "google/api/annotations.proto";
  17. import "google/api/client.proto";
  18. import "google/api/field_behavior.proto";
  19. import "google/api/resource.proto";
  20. import "google/cloud/security/privateca/v1beta1/resources.proto";
  21. import "google/longrunning/operations.proto";
  22. import "google/protobuf/field_mask.proto";
  23. import "google/protobuf/timestamp.proto";
  24. option cc_enable_arenas = true;
  25. option csharp_namespace = "Google.Cloud.Security.PrivateCA.V1Beta1";
  26. option go_package = "google.golang.org/genproto/googleapis/cloud/security/privateca/v1beta1;privateca";
  27. option java_multiple_files = true;
  28. option java_outer_classname = "PrivateCaProto";
  29. option java_package = "com.google.cloud.security.privateca.v1beta1";
  30. option php_namespace = "Google\\Cloud\\Security\\PrivateCA\\V1beta1";
  31. option ruby_package = "Google::Cloud::Security::PrivateCA::V1beta1";
  32. // [Certificate Authority Service][google.cloud.security.privateca.v1beta1.CertificateAuthorityService] manages private
  33. // certificate authorities and issued certificates.
  34. service CertificateAuthorityService {
  35. option (google.api.default_host) = "privateca.googleapis.com";
  36. option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
  37. // Create a new [Certificate][google.cloud.security.privateca.v1beta1.Certificate] in a given Project, Location from a particular
  38. // [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority].
  39. rpc CreateCertificate(CreateCertificateRequest) returns (Certificate) {
  40. option (google.api.http) = {
  41. post: "/v1beta1/{parent=projects/*/locations/*/certificateAuthorities/*}/certificates"
  42. body: "certificate"
  43. };
  44. option (google.api.method_signature) = "parent,certificate,certificate_id";
  45. }
  46. // Returns a [Certificate][google.cloud.security.privateca.v1beta1.Certificate].
  47. rpc GetCertificate(GetCertificateRequest) returns (Certificate) {
  48. option (google.api.http) = {
  49. get: "/v1beta1/{name=projects/*/locations/*/certificateAuthorities/*/certificates/*}"
  50. };
  51. option (google.api.method_signature) = "name";
  52. }
  53. // Lists [Certificates][google.cloud.security.privateca.v1beta1.Certificate].
  54. rpc ListCertificates(ListCertificatesRequest) returns (ListCertificatesResponse) {
  55. option (google.api.http) = {
  56. get: "/v1beta1/{parent=projects/*/locations/*/certificateAuthorities/*}/certificates"
  57. };
  58. option (google.api.method_signature) = "parent";
  59. }
  60. // Revoke a [Certificate][google.cloud.security.privateca.v1beta1.Certificate].
  61. rpc RevokeCertificate(RevokeCertificateRequest) returns (Certificate) {
  62. option (google.api.http) = {
  63. post: "/v1beta1/{name=projects/*/locations/*/certificateAuthorities/*/certificates/*}:revoke"
  64. body: "*"
  65. };
  66. option (google.api.method_signature) = "name";
  67. }
  68. // Update a [Certificate][google.cloud.security.privateca.v1beta1.Certificate]. Currently, the only field you can update is the
  69. // [labels][google.cloud.security.privateca.v1beta1.Certificate.labels] field.
  70. rpc UpdateCertificate(UpdateCertificateRequest) returns (Certificate) {
  71. option (google.api.http) = {
  72. patch: "/v1beta1/{certificate.name=projects/*/locations/*/certificateAuthorities/*/certificates/*}"
  73. body: "certificate"
  74. };
  75. option (google.api.method_signature) = "certificate,update_mask";
  76. }
  77. // Activate a [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] that is in state
  78. // [PENDING_ACTIVATION][google.cloud.security.privateca.v1beta1.CertificateAuthority.State.PENDING_ACTIVATION] and is
  79. // of type [SUBORDINATE][google.cloud.security.privateca.v1beta1.CertificateAuthority.Type.SUBORDINATE]. After the
  80. // parent Certificate Authority signs a certificate signing request from
  81. // [FetchCertificateAuthorityCsr][google.cloud.security.privateca.v1beta1.CertificateAuthorityService.FetchCertificateAuthorityCsr], this method can complete the activation
  82. // process.
  83. rpc ActivateCertificateAuthority(ActivateCertificateAuthorityRequest) returns (google.longrunning.Operation) {
  84. option (google.api.http) = {
  85. post: "/v1beta1/{name=projects/*/locations/*/certificateAuthorities/*}:activate"
  86. body: "*"
  87. };
  88. option (google.api.method_signature) = "name";
  89. option (google.longrunning.operation_info) = {
  90. response_type: "CertificateAuthority"
  91. metadata_type: "OperationMetadata"
  92. };
  93. }
  94. // Create a new [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] in a given Project and Location.
  95. rpc CreateCertificateAuthority(CreateCertificateAuthorityRequest) returns (google.longrunning.Operation) {
  96. option (google.api.http) = {
  97. post: "/v1beta1/{parent=projects/*/locations/*}/certificateAuthorities"
  98. body: "certificate_authority"
  99. };
  100. option (google.api.method_signature) = "parent,certificate_authority,certificate_authority_id";
  101. option (google.longrunning.operation_info) = {
  102. response_type: "CertificateAuthority"
  103. metadata_type: "OperationMetadata"
  104. };
  105. }
  106. // Disable a [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority].
  107. rpc DisableCertificateAuthority(DisableCertificateAuthorityRequest) returns (google.longrunning.Operation) {
  108. option (google.api.http) = {
  109. post: "/v1beta1/{name=projects/*/locations/*/certificateAuthorities/*}:disable"
  110. body: "*"
  111. };
  112. option (google.api.method_signature) = "name";
  113. option (google.longrunning.operation_info) = {
  114. response_type: "CertificateAuthority"
  115. metadata_type: "OperationMetadata"
  116. };
  117. }
  118. // Enable a [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority].
  119. rpc EnableCertificateAuthority(EnableCertificateAuthorityRequest) returns (google.longrunning.Operation) {
  120. option (google.api.http) = {
  121. post: "/v1beta1/{name=projects/*/locations/*/certificateAuthorities/*}:enable"
  122. body: "*"
  123. };
  124. option (google.api.method_signature) = "name";
  125. option (google.longrunning.operation_info) = {
  126. response_type: "CertificateAuthority"
  127. metadata_type: "OperationMetadata"
  128. };
  129. }
  130. // Fetch a certificate signing request (CSR) from a [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority]
  131. // that is in state
  132. // [PENDING_ACTIVATION][google.cloud.security.privateca.v1beta1.CertificateAuthority.State.PENDING_ACTIVATION] and is
  133. // of type [SUBORDINATE][google.cloud.security.privateca.v1beta1.CertificateAuthority.Type.SUBORDINATE]. The CSR must
  134. // then be signed by the desired parent Certificate Authority, which could be
  135. // another [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] resource, or could be an on-prem
  136. // certificate authority. See also [ActivateCertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthorityService.ActivateCertificateAuthority].
  137. rpc FetchCertificateAuthorityCsr(FetchCertificateAuthorityCsrRequest) returns (FetchCertificateAuthorityCsrResponse) {
  138. option (google.api.http) = {
  139. get: "/v1beta1/{name=projects/*/locations/*/certificateAuthorities/*}:fetch"
  140. };
  141. option (google.api.method_signature) = "name";
  142. }
  143. // Returns a [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority].
  144. rpc GetCertificateAuthority(GetCertificateAuthorityRequest) returns (CertificateAuthority) {
  145. option (google.api.http) = {
  146. get: "/v1beta1/{name=projects/*/locations/*/certificateAuthorities/*}"
  147. };
  148. option (google.api.method_signature) = "name";
  149. }
  150. // Lists [CertificateAuthorities][google.cloud.security.privateca.v1beta1.CertificateAuthority].
  151. rpc ListCertificateAuthorities(ListCertificateAuthoritiesRequest) returns (ListCertificateAuthoritiesResponse) {
  152. option (google.api.http) = {
  153. get: "/v1beta1/{parent=projects/*/locations/*}/certificateAuthorities"
  154. };
  155. option (google.api.method_signature) = "parent";
  156. }
  157. // Restore a [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] that is scheduled for deletion.
  158. rpc RestoreCertificateAuthority(RestoreCertificateAuthorityRequest) returns (google.longrunning.Operation) {
  159. option (google.api.http) = {
  160. post: "/v1beta1/{name=projects/*/locations/*/certificateAuthorities/*}:restore"
  161. body: "*"
  162. };
  163. option (google.api.method_signature) = "name";
  164. option (google.longrunning.operation_info) = {
  165. response_type: "CertificateAuthority"
  166. metadata_type: "OperationMetadata"
  167. };
  168. }
  169. // Schedule a [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] for deletion.
  170. rpc ScheduleDeleteCertificateAuthority(ScheduleDeleteCertificateAuthorityRequest) returns (google.longrunning.Operation) {
  171. option (google.api.http) = {
  172. post: "/v1beta1/{name=projects/*/locations/*/certificateAuthorities/*}:scheduleDelete"
  173. body: "*"
  174. };
  175. option (google.api.method_signature) = "name";
  176. option (google.longrunning.operation_info) = {
  177. response_type: "CertificateAuthority"
  178. metadata_type: "OperationMetadata"
  179. };
  180. }
  181. // Update a [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority].
  182. rpc UpdateCertificateAuthority(UpdateCertificateAuthorityRequest) returns (google.longrunning.Operation) {
  183. option (google.api.http) = {
  184. patch: "/v1beta1/{certificate_authority.name=projects/*/locations/*/certificateAuthorities/*}"
  185. body: "certificate_authority"
  186. };
  187. option (google.api.method_signature) = "certificate_authority,update_mask";
  188. option (google.longrunning.operation_info) = {
  189. response_type: "CertificateAuthority"
  190. metadata_type: "OperationMetadata"
  191. };
  192. }
  193. // Returns a [CertificateRevocationList][google.cloud.security.privateca.v1beta1.CertificateRevocationList].
  194. rpc GetCertificateRevocationList(GetCertificateRevocationListRequest) returns (CertificateRevocationList) {
  195. option (google.api.http) = {
  196. get: "/v1beta1/{name=projects/*/locations/*/certificateAuthorities/*/certificateRevocationLists/*}"
  197. };
  198. option (google.api.method_signature) = "name";
  199. }
  200. // Lists [CertificateRevocationLists][google.cloud.security.privateca.v1beta1.CertificateRevocationList].
  201. rpc ListCertificateRevocationLists(ListCertificateRevocationListsRequest) returns (ListCertificateRevocationListsResponse) {
  202. option (google.api.http) = {
  203. get: "/v1beta1/{parent=projects/*/locations/*/certificateAuthorities/*}/certificateRevocationLists"
  204. };
  205. option (google.api.method_signature) = "parent";
  206. }
  207. // Update a [CertificateRevocationList][google.cloud.security.privateca.v1beta1.CertificateRevocationList].
  208. rpc UpdateCertificateRevocationList(UpdateCertificateRevocationListRequest) returns (google.longrunning.Operation) {
  209. option (google.api.http) = {
  210. patch: "/v1beta1/{certificate_revocation_list.name=projects/*/locations/*/certificateAuthorities/*/certificateRevocationLists/*}"
  211. body: "certificate_revocation_list"
  212. };
  213. option (google.api.method_signature) = "certificate_revocation_list,update_mask";
  214. option (google.longrunning.operation_info) = {
  215. response_type: "CertificateRevocationList"
  216. metadata_type: "OperationMetadata"
  217. };
  218. }
  219. // Returns a [ReusableConfig][google.cloud.security.privateca.v1beta1.ReusableConfig].
  220. rpc GetReusableConfig(GetReusableConfigRequest) returns (ReusableConfig) {
  221. option (google.api.http) = {
  222. get: "/v1beta1/{name=projects/*/locations/*/reusableConfigs/*}"
  223. };
  224. option (google.api.method_signature) = "name";
  225. }
  226. // Lists [ReusableConfigs][google.cloud.security.privateca.v1beta1.ReusableConfig].
  227. rpc ListReusableConfigs(ListReusableConfigsRequest) returns (ListReusableConfigsResponse) {
  228. option (google.api.http) = {
  229. get: "/v1beta1/{parent=projects/*/locations/*}/reusableConfigs"
  230. };
  231. option (google.api.method_signature) = "parent";
  232. }
  233. }
  234. // Request message for [CertificateAuthorityService.CreateCertificate][google.cloud.security.privateca.v1beta1.CertificateAuthorityService.CreateCertificate].
  235. message CreateCertificateRequest {
  236. // Required. The resource name of the location and [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority]
  237. // associated with the [Certificate][google.cloud.security.privateca.v1beta1.Certificate], in the format
  238. // `projects/*/locations/*/certificateAuthorities/*`.
  239. string parent = 1 [
  240. (google.api.field_behavior) = REQUIRED,
  241. (google.api.resource_reference) = {
  242. type: "privateca.googleapis.com/CertificateAuthority"
  243. }
  244. ];
  245. // Optional. It must be unique within a location and match the regular
  246. // expression `[a-zA-Z0-9_-]{1,63}`. This field is required when using a
  247. // [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] in the Enterprise [CertificateAuthority.Tier][google.cloud.security.privateca.v1beta1.CertificateAuthority.Tier],
  248. // but is optional and its value is ignored otherwise.
  249. string certificate_id = 2 [(google.api.field_behavior) = OPTIONAL];
  250. // Required. A [Certificate][google.cloud.security.privateca.v1beta1.Certificate] with initial field values.
  251. Certificate certificate = 3 [(google.api.field_behavior) = REQUIRED];
  252. // Optional. An ID to identify requests. Specify a unique request ID so that if you must
  253. // retry your request, the server will know to ignore the request if it has
  254. // already been completed. The server will guarantee that for at least 60
  255. // minutes since the first request.
  256. //
  257. // For example, consider a situation where you make an initial request and t
  258. // he request times out. If you make the request again with the same request
  259. // ID, the server can check if original operation with the same request ID
  260. // was received, and if so, will ignore the second request. This prevents
  261. // clients from accidentally creating duplicate commitments.
  262. //
  263. // The request ID must be a valid UUID with the exception that zero UUID is
  264. // not supported (00000000-0000-0000-0000-000000000000).
  265. string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
  266. }
  267. // Request message for
  268. // [CertificateAuthorityService.GetCertificate][google.cloud.security.privateca.v1beta1.CertificateAuthorityService.GetCertificate].
  269. message GetCertificateRequest {
  270. // Required. The [name][google.cloud.security.privateca.v1beta1.Certificate.name] of the [Certificate][google.cloud.security.privateca.v1beta1.Certificate] to get.
  271. string name = 1 [
  272. (google.api.field_behavior) = REQUIRED,
  273. (google.api.resource_reference) = {
  274. type: "privateca.googleapis.com/Certificate"
  275. }
  276. ];
  277. }
  278. // Request message for [CertificateAuthorityService.ListCertificates][google.cloud.security.privateca.v1beta1.CertificateAuthorityService.ListCertificates].
  279. message ListCertificatesRequest {
  280. // Required. The resource name of the location associated with the
  281. // [Certificates][google.cloud.security.privateca.v1beta1.Certificate], in the format
  282. // `projects/*/locations/*/certificateauthorities/*`.
  283. string parent = 1 [
  284. (google.api.field_behavior) = REQUIRED,
  285. (google.api.resource_reference) = {
  286. type: "privateca.googleapis.com/CertificateAuthority"
  287. }
  288. ];
  289. // Optional. Limit on the number of
  290. // [Certificates][google.cloud.security.privateca.v1beta1.Certificate] to include in the
  291. // response. Further [Certificates][google.cloud.security.privateca.v1beta1.Certificate] can subsequently be obtained
  292. // by including the
  293. // [ListCertificatesResponse.next_page_token][google.cloud.security.privateca.v1beta1.ListCertificatesResponse.next_page_token] in a subsequent
  294. // request. If unspecified, the server will pick an appropriate default.
  295. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
  296. // Optional. Pagination token, returned earlier via
  297. // [ListCertificatesResponse.next_page_token][google.cloud.security.privateca.v1beta1.ListCertificatesResponse.next_page_token].
  298. string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
  299. // Optional. Only include resources that match the filter in the response. For details
  300. // on supported filters and syntax, see [Certificates Filtering
  301. // documentation](https://cloud.google.com/certificate-authority-service/docs/sorting-filtering-certificates#filtering_support).
  302. string filter = 4 [(google.api.field_behavior) = OPTIONAL];
  303. // Optional. Specify how the results should be sorted. For details on supported fields
  304. // and syntax, see [Certificates Sorting
  305. // documentation](https://cloud.google.com/certificate-authority-service/docs/sorting-filtering-certificates#sorting_support).
  306. string order_by = 5 [(google.api.field_behavior) = OPTIONAL];
  307. }
  308. // Response message for [CertificateAuthorityService.ListCertificates][google.cloud.security.privateca.v1beta1.CertificateAuthorityService.ListCertificates].
  309. message ListCertificatesResponse {
  310. // The list of [Certificates][google.cloud.security.privateca.v1beta1.Certificate].
  311. repeated Certificate certificates = 1;
  312. // A token to retrieve next page of results. Pass this value in
  313. // [ListCertificatesRequest.next_page_token][] to retrieve the
  314. // next page of results.
  315. string next_page_token = 2;
  316. // A list of locations (e.g. "us-west1") that could not be reached.
  317. repeated string unreachable = 3;
  318. }
  319. // Request message for
  320. // [CertificateAuthorityService.RevokeCertificate][google.cloud.security.privateca.v1beta1.CertificateAuthorityService.RevokeCertificate].
  321. message RevokeCertificateRequest {
  322. // Required. The resource name for this [Certificate][google.cloud.security.privateca.v1beta1.Certificate] in the
  323. // format `projects/*/locations/*/certificateAuthorities/*/certificates/*`.
  324. string name = 1 [
  325. (google.api.field_behavior) = REQUIRED,
  326. (google.api.resource_reference) = {
  327. type: "privateca.googleapis.com/Certificate"
  328. }
  329. ];
  330. // Required. The [RevocationReason][google.cloud.security.privateca.v1beta1.RevocationReason] for revoking this certificate.
  331. RevocationReason reason = 2 [(google.api.field_behavior) = REQUIRED];
  332. // Optional. An ID to identify requests. Specify a unique request ID so that if you must
  333. // retry your request, the server will know to ignore the request if it has
  334. // already been completed. The server will guarantee that for at least 60
  335. // minutes since the first request.
  336. //
  337. // For example, consider a situation where you make an initial request and t
  338. // he request times out. If you make the request again with the same request
  339. // ID, the server can check if original operation with the same request ID
  340. // was received, and if so, will ignore the second request. This prevents
  341. // clients from accidentally creating duplicate commitments.
  342. //
  343. // The request ID must be a valid UUID with the exception that zero UUID is
  344. // not supported (00000000-0000-0000-0000-000000000000).
  345. string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
  346. }
  347. // Request message for [CertificateAuthorityService.UpdateCertificate][google.cloud.security.privateca.v1beta1.CertificateAuthorityService.UpdateCertificate].
  348. message UpdateCertificateRequest {
  349. // Required. [Certificate][google.cloud.security.privateca.v1beta1.Certificate] with updated values.
  350. Certificate certificate = 1 [(google.api.field_behavior) = REQUIRED];
  351. // Required. A list of fields to be updated in this request.
  352. google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
  353. // Optional. An ID to identify requests. Specify a unique request ID so that if you must
  354. // retry your request, the server will know to ignore the request if it has
  355. // already been completed. The server will guarantee that for at least 60
  356. // minutes since the first request.
  357. //
  358. // For example, consider a situation where you make an initial request and t
  359. // he request times out. If you make the request again with the same request
  360. // ID, the server can check if original operation with the same request ID
  361. // was received, and if so, will ignore the second request. This prevents
  362. // clients from accidentally creating duplicate commitments.
  363. //
  364. // The request ID must be a valid UUID with the exception that zero UUID is
  365. // not supported (00000000-0000-0000-0000-000000000000).
  366. string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
  367. }
  368. // Request message for
  369. // [CertificateAuthorityService.ActivateCertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthorityService.ActivateCertificateAuthority].
  370. message ActivateCertificateAuthorityRequest {
  371. // Required. The resource name for this [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] in the
  372. // format `projects/*/locations/*/certificateAuthorities/*`.
  373. string name = 1 [
  374. (google.api.field_behavior) = REQUIRED,
  375. (google.api.resource_reference) = {
  376. type: "privateca.googleapis.com/CertificateAuthority"
  377. }
  378. ];
  379. // Required. The signed CA certificate issued from
  380. // [FetchCertificateAuthorityCsrResponse.pem_csr][google.cloud.security.privateca.v1beta1.FetchCertificateAuthorityCsrResponse.pem_csr].
  381. string pem_ca_certificate = 2 [(google.api.field_behavior) = REQUIRED];
  382. // Required. Must include information about the issuer of 'pem_ca_certificate', and any
  383. // further issuers until the self-signed CA.
  384. SubordinateConfig subordinate_config = 3 [(google.api.field_behavior) = REQUIRED];
  385. // Optional. An ID to identify requests. Specify a unique request ID so that if you must
  386. // retry your request, the server will know to ignore the request if it has
  387. // already been completed. The server will guarantee that for at least 60
  388. // minutes since the first request.
  389. //
  390. // For example, consider a situation where you make an initial request and t
  391. // he request times out. If you make the request again with the same request
  392. // ID, the server can check if original operation with the same request ID
  393. // was received, and if so, will ignore the second request. This prevents
  394. // clients from accidentally creating duplicate commitments.
  395. //
  396. // The request ID must be a valid UUID with the exception that zero UUID is
  397. // not supported (00000000-0000-0000-0000-000000000000).
  398. string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
  399. }
  400. // Request message for
  401. // [CertificateAuthorityService.CreateCertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthorityService.CreateCertificateAuthority].
  402. message CreateCertificateAuthorityRequest {
  403. // Required. The resource name of the location associated with the
  404. // [CertificateAuthorities][google.cloud.security.privateca.v1beta1.CertificateAuthority], in the format
  405. // `projects/*/locations/*`.
  406. string parent = 1 [
  407. (google.api.field_behavior) = REQUIRED,
  408. (google.api.resource_reference) = {
  409. type: "locations.googleapis.com/Location"
  410. }
  411. ];
  412. // Required. It must be unique within a location and match the regular
  413. // expression `[a-zA-Z0-9_-]{1,63}`
  414. string certificate_authority_id = 2 [(google.api.field_behavior) = REQUIRED];
  415. // Required. A [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] with initial field values.
  416. CertificateAuthority certificate_authority = 3 [(google.api.field_behavior) = REQUIRED];
  417. // Optional. An ID to identify requests. Specify a unique request ID so that if you must
  418. // retry your request, the server will know to ignore the request if it has
  419. // already been completed. The server will guarantee that for at least 60
  420. // minutes since the first request.
  421. //
  422. // For example, consider a situation where you make an initial request and t
  423. // he request times out. If you make the request again with the same request
  424. // ID, the server can check if original operation with the same request ID
  425. // was received, and if so, will ignore the second request. This prevents
  426. // clients from accidentally creating duplicate commitments.
  427. //
  428. // The request ID must be a valid UUID with the exception that zero UUID is
  429. // not supported (00000000-0000-0000-0000-000000000000).
  430. string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
  431. }
  432. // Request message for
  433. // [CertificateAuthorityService.DisableCertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthorityService.DisableCertificateAuthority].
  434. message DisableCertificateAuthorityRequest {
  435. // Required. The resource name for this [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] in the
  436. // format `projects/*/locations/*/certificateAuthorities/*`.
  437. string name = 1 [
  438. (google.api.field_behavior) = REQUIRED,
  439. (google.api.resource_reference) = {
  440. type: "privateca.googleapis.com/CertificateAuthority"
  441. }
  442. ];
  443. // Optional. An ID to identify requests. Specify a unique request ID so that if you must
  444. // retry your request, the server will know to ignore the request if it has
  445. // already been completed. The server will guarantee that for at least 60
  446. // minutes since the first request.
  447. //
  448. // For example, consider a situation where you make an initial request and t
  449. // he request times out. If you make the request again with the same request
  450. // ID, the server can check if original operation with the same request ID
  451. // was received, and if so, will ignore the second request. This prevents
  452. // clients from accidentally creating duplicate commitments.
  453. //
  454. // The request ID must be a valid UUID with the exception that zero UUID is
  455. // not supported (00000000-0000-0000-0000-000000000000).
  456. string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
  457. }
  458. // Request message for
  459. // [CertificateAuthorityService.EnableCertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthorityService.EnableCertificateAuthority].
  460. message EnableCertificateAuthorityRequest {
  461. // Required. The resource name for this [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] in the
  462. // format `projects/*/locations/*/certificateAuthorities/*`.
  463. string name = 1 [
  464. (google.api.field_behavior) = REQUIRED,
  465. (google.api.resource_reference) = {
  466. type: "privateca.googleapis.com/CertificateAuthority"
  467. }
  468. ];
  469. // Optional. An ID to identify requests. Specify a unique request ID so that if you must
  470. // retry your request, the server will know to ignore the request if it has
  471. // already been completed. The server will guarantee that for at least 60
  472. // minutes since the first request.
  473. //
  474. // For example, consider a situation where you make an initial request and t
  475. // he request times out. If you make the request again with the same request
  476. // ID, the server can check if original operation with the same request ID
  477. // was received, and if so, will ignore the second request. This prevents
  478. // clients from accidentally creating duplicate commitments.
  479. //
  480. // The request ID must be a valid UUID with the exception that zero UUID is
  481. // not supported (00000000-0000-0000-0000-000000000000).
  482. string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
  483. }
  484. // Request message for
  485. // [CertificateAuthorityService.FetchCertificateAuthorityCsr][google.cloud.security.privateca.v1beta1.CertificateAuthorityService.FetchCertificateAuthorityCsr].
  486. message FetchCertificateAuthorityCsrRequest {
  487. // Required. The resource name for this [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] in the
  488. // format `projects/*/locations/*/certificateAuthorities/*`.
  489. string name = 1 [
  490. (google.api.field_behavior) = REQUIRED,
  491. (google.api.resource_reference) = {
  492. type: "privateca.googleapis.com/CertificateAuthority"
  493. }
  494. ];
  495. }
  496. // Response message for
  497. // [CertificateAuthorityService.FetchCertificateAuthorityCsr][google.cloud.security.privateca.v1beta1.CertificateAuthorityService.FetchCertificateAuthorityCsr].
  498. message FetchCertificateAuthorityCsrResponse {
  499. // Output only. The PEM-encoded signed certificate signing request (CSR).
  500. string pem_csr = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
  501. }
  502. // Request message for [CertificateAuthorityService.GetCertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthorityService.GetCertificateAuthority].
  503. message GetCertificateAuthorityRequest {
  504. // Required. The [name][google.cloud.security.privateca.v1beta1.CertificateAuthority.name] of the [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] to
  505. // get.
  506. string name = 1 [
  507. (google.api.field_behavior) = REQUIRED,
  508. (google.api.resource_reference) = {
  509. type: "privateca.googleapis.com/CertificateAuthority"
  510. }
  511. ];
  512. }
  513. // Request message for
  514. // [CertificateAuthorityService.ListCertificateAuthorities][google.cloud.security.privateca.v1beta1.CertificateAuthorityService.ListCertificateAuthorities].
  515. message ListCertificateAuthoritiesRequest {
  516. // Required. The resource name of the location associated with the
  517. // [CertificateAuthorities][google.cloud.security.privateca.v1beta1.CertificateAuthority], in the format
  518. // `projects/*/locations/*`.
  519. string parent = 1 [
  520. (google.api.field_behavior) = REQUIRED,
  521. (google.api.resource_reference) = {
  522. type: "locations.googleapis.com/Location"
  523. }
  524. ];
  525. // Optional. Limit on the number of [CertificateAuthorities][google.cloud.security.privateca.v1beta1.CertificateAuthority] to
  526. // include in the response.
  527. // Further [CertificateAuthorities][google.cloud.security.privateca.v1beta1.CertificateAuthority] can subsequently be
  528. // obtained by including the
  529. // [ListCertificateAuthoritiesResponse.next_page_token][google.cloud.security.privateca.v1beta1.ListCertificateAuthoritiesResponse.next_page_token] in a subsequent
  530. // request. If unspecified, the server will pick an appropriate default.
  531. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
  532. // Optional. Pagination token, returned earlier via
  533. // [ListCertificateAuthoritiesResponse.next_page_token][google.cloud.security.privateca.v1beta1.ListCertificateAuthoritiesResponse.next_page_token].
  534. string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
  535. // Optional. Only include resources that match the filter in the response.
  536. string filter = 4 [(google.api.field_behavior) = OPTIONAL];
  537. // Optional. Specify how the results should be sorted.
  538. string order_by = 5 [(google.api.field_behavior) = OPTIONAL];
  539. }
  540. // Response message for
  541. // [CertificateAuthorityService.ListCertificateAuthorities][google.cloud.security.privateca.v1beta1.CertificateAuthorityService.ListCertificateAuthorities].
  542. message ListCertificateAuthoritiesResponse {
  543. // The list of [CertificateAuthorities][google.cloud.security.privateca.v1beta1.CertificateAuthority].
  544. repeated CertificateAuthority certificate_authorities = 1;
  545. // A token to retrieve next page of results. Pass this value in
  546. // [ListCertificateAuthoritiesRequest.next_page_token][] to retrieve the next
  547. // page of results.
  548. string next_page_token = 2;
  549. // A list of locations (e.g. "us-west1") that could not be reached.
  550. repeated string unreachable = 3;
  551. }
  552. // Request message for
  553. // [CertificateAuthorityService.RestoreCertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthorityService.RestoreCertificateAuthority].
  554. message RestoreCertificateAuthorityRequest {
  555. // Required. The resource name for this [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] in the
  556. // format `projects/*/locations/*/certificateAuthorities/*`.
  557. string name = 1 [
  558. (google.api.field_behavior) = REQUIRED,
  559. (google.api.resource_reference) = {
  560. type: "privateca.googleapis.com/CertificateAuthority"
  561. }
  562. ];
  563. // Optional. An ID to identify requests. Specify a unique request ID so that if you must
  564. // retry your request, the server will know to ignore the request if it has
  565. // already been completed. The server will guarantee that for at least 60
  566. // minutes since the first request.
  567. //
  568. // For example, consider a situation where you make an initial request and t
  569. // he request times out. If you make the request again with the same request
  570. // ID, the server can check if original operation with the same request ID
  571. // was received, and if so, will ignore the second request. This prevents
  572. // clients from accidentally creating duplicate commitments.
  573. //
  574. // The request ID must be a valid UUID with the exception that zero UUID is
  575. // not supported (00000000-0000-0000-0000-000000000000).
  576. string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
  577. }
  578. // Request message for
  579. // [CertificateAuthorityService.ScheduleDeleteCertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthorityService.ScheduleDeleteCertificateAuthority].
  580. message ScheduleDeleteCertificateAuthorityRequest {
  581. // Required. The resource name for this [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] in the
  582. // format `projects/*/locations/*/certificateAuthorities/*`.
  583. string name = 1 [
  584. (google.api.field_behavior) = REQUIRED,
  585. (google.api.resource_reference) = {
  586. type: "privateca.googleapis.com/CertificateAuthority"
  587. }
  588. ];
  589. // Optional. An ID to identify requests. Specify a unique request ID so that if you must
  590. // retry your request, the server will know to ignore the request if it has
  591. // already been completed. The server will guarantee that for at least 60
  592. // minutes since the first request.
  593. //
  594. // For example, consider a situation where you make an initial request and t
  595. // he request times out. If you make the request again with the same request
  596. // ID, the server can check if original operation with the same request ID
  597. // was received, and if so, will ignore the second request. This prevents
  598. // clients from accidentally creating duplicate commitments.
  599. //
  600. // The request ID must be a valid UUID with the exception that zero UUID is
  601. // not supported (00000000-0000-0000-0000-000000000000).
  602. string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
  603. }
  604. // Request message for
  605. // [CertificateAuthorityService.UpdateCertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthorityService.UpdateCertificateAuthority].
  606. message UpdateCertificateAuthorityRequest {
  607. // Required. [CertificateAuthority][google.cloud.security.privateca.v1beta1.CertificateAuthority] with updated values.
  608. CertificateAuthority certificate_authority = 1 [(google.api.field_behavior) = REQUIRED];
  609. // Required. A list of fields to be updated in this request.
  610. google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
  611. // Optional. An ID to identify requests. Specify a unique request ID so that if you must
  612. // retry your request, the server will know to ignore the request if it has
  613. // already been completed. The server will guarantee that for at least 60
  614. // minutes since the first request.
  615. //
  616. // For example, consider a situation where you make an initial request and t
  617. // he request times out. If you make the request again with the same request
  618. // ID, the server can check if original operation with the same request ID
  619. // was received, and if so, will ignore the second request. This prevents
  620. // clients from accidentally creating duplicate commitments.
  621. //
  622. // The request ID must be a valid UUID with the exception that zero UUID is
  623. // not supported (00000000-0000-0000-0000-000000000000).
  624. string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
  625. }
  626. // Request message for
  627. // [CertificateAuthorityService.GetCertificateRevocationList][google.cloud.security.privateca.v1beta1.CertificateAuthorityService.GetCertificateRevocationList].
  628. message GetCertificateRevocationListRequest {
  629. // Required. The [name][google.cloud.security.privateca.v1beta1.CertificateRevocationList.name] of the
  630. // [CertificateRevocationList][google.cloud.security.privateca.v1beta1.CertificateRevocationList] to get.
  631. string name = 1 [
  632. (google.api.field_behavior) = REQUIRED,
  633. (google.api.resource_reference) = {
  634. type: "privateca.googleapis.com/CertificateRevocationList"
  635. }
  636. ];
  637. }
  638. // Request message for
  639. // [CertificateAuthorityService.ListCertificateRevocationLists][google.cloud.security.privateca.v1beta1.CertificateAuthorityService.ListCertificateRevocationLists].
  640. message ListCertificateRevocationListsRequest {
  641. // Required. The resource name of the location associated with the
  642. // [CertificateRevocationLists][google.cloud.security.privateca.v1beta1.CertificateRevocationList], in the format
  643. // `projects/*/locations/*/certificateauthorities/*`.
  644. string parent = 1 [
  645. (google.api.field_behavior) = REQUIRED,
  646. (google.api.resource_reference) = {
  647. type: "privateca.googleapis.com/CertificateAuthority"
  648. }
  649. ];
  650. // Optional. Limit on the number of
  651. // [CertificateRevocationLists][google.cloud.security.privateca.v1beta1.CertificateRevocationList] to include in the
  652. // response. Further [CertificateRevocationLists][google.cloud.security.privateca.v1beta1.CertificateRevocationList]
  653. // can subsequently be obtained by including the
  654. // [ListCertificateRevocationListsResponse.next_page_token][google.cloud.security.privateca.v1beta1.ListCertificateRevocationListsResponse.next_page_token] in a subsequent
  655. // request. If unspecified, the server will pick an appropriate default.
  656. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
  657. // Optional. Pagination token, returned earlier via
  658. // [ListCertificateRevocationListsResponse.next_page_token][google.cloud.security.privateca.v1beta1.ListCertificateRevocationListsResponse.next_page_token].
  659. string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
  660. // Optional. Only include resources that match the filter in the response.
  661. string filter = 4 [(google.api.field_behavior) = OPTIONAL];
  662. // Optional. Specify how the results should be sorted.
  663. string order_by = 5 [(google.api.field_behavior) = OPTIONAL];
  664. }
  665. // Response message for
  666. // [CertificateAuthorityService.ListCertificateRevocationLists][google.cloud.security.privateca.v1beta1.CertificateAuthorityService.ListCertificateRevocationLists].
  667. message ListCertificateRevocationListsResponse {
  668. // The list of [CertificateRevocationLists][google.cloud.security.privateca.v1beta1.CertificateRevocationList].
  669. repeated CertificateRevocationList certificate_revocation_lists = 1;
  670. // A token to retrieve next page of results. Pass this value in
  671. // [ListCertificateRevocationListsRequest.next_page_token][] to retrieve the
  672. // next page of results.
  673. string next_page_token = 2;
  674. // A list of locations (e.g. "us-west1") that could not be reached.
  675. repeated string unreachable = 3;
  676. }
  677. // Request message for
  678. // [CertificateAuthorityService.UpdateCertificateRevocationList][google.cloud.security.privateca.v1beta1.CertificateAuthorityService.UpdateCertificateRevocationList].
  679. message UpdateCertificateRevocationListRequest {
  680. // Required. [CertificateRevocationList][google.cloud.security.privateca.v1beta1.CertificateRevocationList] with updated values.
  681. CertificateRevocationList certificate_revocation_list = 1 [(google.api.field_behavior) = REQUIRED];
  682. // Required. A list of fields to be updated in this request.
  683. google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
  684. // Optional. An ID to identify requests. Specify a unique request ID so that if you must
  685. // retry your request, the server will know to ignore the request if it has
  686. // already been completed. The server will guarantee that for at least 60
  687. // minutes since the first request.
  688. //
  689. // For example, consider a situation where you make an initial request and t
  690. // he request times out. If you make the request again with the same request
  691. // ID, the server can check if original operation with the same request ID
  692. // was received, and if so, will ignore the second request. This prevents
  693. // clients from accidentally creating duplicate commitments.
  694. //
  695. // The request ID must be a valid UUID with the exception that zero UUID is
  696. // not supported (00000000-0000-0000-0000-000000000000).
  697. string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
  698. }
  699. // Request message for
  700. // [CertificateAuthorityService.GetReusableConfig][google.cloud.security.privateca.v1beta1.CertificateAuthorityService.GetReusableConfig].
  701. message GetReusableConfigRequest {
  702. // Required. The [name][ReusableConfigs.name] of the [ReusableConfigs][] to get.
  703. string name = 1 [
  704. (google.api.field_behavior) = REQUIRED,
  705. (google.api.resource_reference) = {
  706. type: "privateca.googleapis.com/ReusableConfig"
  707. }
  708. ];
  709. }
  710. // Request message for
  711. // [CertificateAuthorityService.ListReusableConfigs][google.cloud.security.privateca.v1beta1.CertificateAuthorityService.ListReusableConfigs].
  712. message ListReusableConfigsRequest {
  713. // Required. The resource name of the location associated with the
  714. // [ReusableConfigs][google.cloud.security.privateca.v1beta1.ReusableConfig], in the format
  715. // `projects/*/locations/*`.
  716. string parent = 1 [
  717. (google.api.field_behavior) = REQUIRED,
  718. (google.api.resource_reference) = {
  719. type: "locations.googleapis.com/Location"
  720. }
  721. ];
  722. // Optional. Limit on the number of
  723. // [ReusableConfigs][google.cloud.security.privateca.v1beta1.ReusableConfig] to include in the response.
  724. // Further [ReusableConfigs][google.cloud.security.privateca.v1beta1.ReusableConfig] can subsequently be
  725. // obtained by including the
  726. // [ListReusableConfigsResponse.next_page_token][google.cloud.security.privateca.v1beta1.ListReusableConfigsResponse.next_page_token] in a subsequent request. If
  727. // unspecified, the server will pick an appropriate default.
  728. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
  729. // Optional. Pagination token, returned earlier via
  730. // [ListReusableConfigsResponse.next_page_token][google.cloud.security.privateca.v1beta1.ListReusableConfigsResponse.next_page_token].
  731. string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
  732. // Optional. Only include resources that match the filter in the response.
  733. string filter = 4 [(google.api.field_behavior) = OPTIONAL];
  734. // Optional. Specify how the results should be sorted.
  735. string order_by = 5 [(google.api.field_behavior) = OPTIONAL];
  736. }
  737. // Response message for
  738. // [CertificateAuthorityService.ListReusableConfigs][google.cloud.security.privateca.v1beta1.CertificateAuthorityService.ListReusableConfigs].
  739. message ListReusableConfigsResponse {
  740. // The list of [ReusableConfigs][google.cloud.security.privateca.v1beta1.ReusableConfig].
  741. repeated ReusableConfig reusable_configs = 1;
  742. // A token to retrieve next page of results. Pass this value in
  743. // [ListReusableConfigsRequest.next_page_token][] to retrieve
  744. // the next page of results.
  745. string next_page_token = 2;
  746. // A list of locations (e.g. "us-west1") that could not be reached.
  747. repeated string unreachable = 3;
  748. }
  749. // Represents the metadata of the long-running operation.
  750. message OperationMetadata {
  751. // Output only. The time the operation was created.
  752. google.protobuf.Timestamp create_time = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
  753. // Output only. The time the operation finished running.
  754. google.protobuf.Timestamp end_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
  755. // Output only. Server-defined resource path for the target of the operation.
  756. string target = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
  757. // Output only. Name of the verb executed by the operation.
  758. string verb = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
  759. // Output only. Human-readable status of the operation, if any.
  760. string status_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
  761. // Output only. Identifies whether the user has requested cancellation
  762. // of the operation. Operations that have successfully been cancelled
  763. // have [Operation.error][] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1,
  764. // corresponding to `Code.CANCELLED`.
  765. bool requested_cancellation = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
  766. // Output only. API version used to start the operation.
  767. string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
  768. }