diff options
Diffstat (limited to 'third_party/googleapis/google/cloud/certificatemanager/v1/certificate_manager.proto')
| -rw-r--r-- | third_party/googleapis/google/cloud/certificatemanager/v1/certificate_manager.proto | 1178 |
1 files changed, 1178 insertions, 0 deletions
diff --git a/third_party/googleapis/google/cloud/certificatemanager/v1/certificate_manager.proto b/third_party/googleapis/google/cloud/certificatemanager/v1/certificate_manager.proto new file mode 100644 index 0000000..07b4c08 --- /dev/null +++ b/third_party/googleapis/google/cloud/certificatemanager/v1/certificate_manager.proto @@ -0,0 +1,1178 @@ +// 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.certificatemanager.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/certificatemanager/v1/certificate_issuance_config.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.CertificateManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/certificatemanager/v1;certificatemanager"; +option java_multiple_files = true; +option java_outer_classname = "CertificateManagerProto"; +option java_package = "com.google.cloud.certificatemanager.v1"; +option php_namespace = "Google\\Cloud\\CertificateManager\\V1"; +option ruby_package = "Google::Cloud::CertificateManager::V1"; + +// API Overview +// +// Certificates Manager API allows customers to see and manage all their TLS +// certificates. +// +// Certificates Manager API service provides methods to manage certificates, +// group them into collections, and create serving configuration that can be +// easily applied to other Cloud resources e.g. Target Proxies. +// +// Data Model +// +// The Certificates Manager service exposes the following resources: +// +// * `Certificate` which describes a single TLS certificate. +// * `CertificateMap` which describes a collection of certificates that can be +// attached to a target resource. +// * `CertificateMapEntry` which describes a single configuration entry that +// consists of a SNI and a group of certificates. It's a subresource of +// CertificateMap. +// +// Certificate, CertificateMap and CertificateMapEntry IDs +// have to match "^[a-z0-9-]{1,63}$" regexp, which means that +// - only lower case letters, digits, and hyphen are allowed +// - length of the resource ID has to be in [1,63] range. +// +// Provides methods to manage Cloud Certificate Manager entities. +service CertificateManager { + option (google.api.default_host) = "certificatemanager.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Lists Certificates in a given project and location. + rpc ListCertificates(ListCertificatesRequest) + returns (ListCertificatesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/certificates" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single Certificate. + rpc GetCertificate(GetCertificateRequest) returns (Certificate) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/certificates/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new Certificate in a given project and location. + rpc CreateCertificate(CreateCertificateRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/certificates" + body: "certificate" + }; + option (google.api.method_signature) = "parent,certificate,certificate_id"; + option (google.longrunning.operation_info) = { + response_type: "Certificate" + metadata_type: "OperationMetadata" + }; + } + + // Updates a Certificate. + rpc UpdateCertificate(UpdateCertificateRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{certificate.name=projects/*/locations/*/certificates/*}" + body: "certificate" + }; + option (google.api.method_signature) = "certificate,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "Certificate" + metadata_type: "OperationMetadata" + }; + } + + // Deletes a single Certificate. + rpc DeleteCertificate(DeleteCertificateRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/certificates/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Lists CertificateMaps in a given project and location. + rpc ListCertificateMaps(ListCertificateMapsRequest) + returns (ListCertificateMapsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/certificateMaps" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single CertificateMap. + rpc GetCertificateMap(GetCertificateMapRequest) returns (CertificateMap) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/certificateMaps/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new CertificateMap in a given project and location. + rpc CreateCertificateMap(CreateCertificateMapRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/certificateMaps" + body: "certificate_map" + }; + option (google.api.method_signature) = + "parent,certificate_map,certificate_map_id"; + option (google.longrunning.operation_info) = { + response_type: "CertificateMap" + metadata_type: "OperationMetadata" + }; + } + + // Updates a CertificateMap. + rpc UpdateCertificateMap(UpdateCertificateMapRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{certificate_map.name=projects/*/locations/*/certificateMaps/*}" + body: "certificate_map" + }; + option (google.api.method_signature) = "certificate_map,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "CertificateMap" + metadata_type: "OperationMetadata" + }; + } + + // Deletes a single CertificateMap. A Certificate Map can't be deleted + // if it contains Certificate Map Entries. Remove all the entries from + // the map before calling this method. + rpc DeleteCertificateMap(DeleteCertificateMapRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/certificateMaps/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Lists CertificateMapEntries in a given project and location. + rpc ListCertificateMapEntries(ListCertificateMapEntriesRequest) + returns (ListCertificateMapEntriesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/certificateMaps/*}/certificateMapEntries" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single CertificateMapEntry. + rpc GetCertificateMapEntry(GetCertificateMapEntryRequest) + returns (CertificateMapEntry) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/certificateMaps/*/certificateMapEntries/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new CertificateMapEntry in a given project and location. + rpc CreateCertificateMapEntry(CreateCertificateMapEntryRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/certificateMaps/*}/certificateMapEntries" + body: "certificate_map_entry" + }; + option (google.api.method_signature) = + "parent,certificate_map_entry,certificate_map_entry_id"; + option (google.longrunning.operation_info) = { + response_type: "CertificateMapEntry" + metadata_type: "OperationMetadata" + }; + } + + // Updates a CertificateMapEntry. + rpc UpdateCertificateMapEntry(UpdateCertificateMapEntryRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{certificate_map_entry.name=projects/*/locations/*/certificateMaps/*/certificateMapEntries/*}" + body: "certificate_map_entry" + }; + option (google.api.method_signature) = "certificate_map_entry,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "CertificateMapEntry" + metadata_type: "OperationMetadata" + }; + } + + // Deletes a single CertificateMapEntry. + rpc DeleteCertificateMapEntry(DeleteCertificateMapEntryRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/certificateMaps/*/certificateMapEntries/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Lists DnsAuthorizations in a given project and location. + rpc ListDnsAuthorizations(ListDnsAuthorizationsRequest) + returns (ListDnsAuthorizationsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/dnsAuthorizations" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single DnsAuthorization. + rpc GetDnsAuthorization(GetDnsAuthorizationRequest) + returns (DnsAuthorization) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/dnsAuthorizations/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new DnsAuthorization in a given project and location. + rpc CreateDnsAuthorization(CreateDnsAuthorizationRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/dnsAuthorizations" + body: "dns_authorization" + }; + option (google.api.method_signature) = + "parent,dns_authorization,dns_authorization_id"; + option (google.longrunning.operation_info) = { + response_type: "DnsAuthorization" + metadata_type: "OperationMetadata" + }; + } + + // Updates a DnsAuthorization. + rpc UpdateDnsAuthorization(UpdateDnsAuthorizationRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{dns_authorization.name=projects/*/locations/*/dnsAuthorizations/*}" + body: "dns_authorization" + }; + option (google.api.method_signature) = "dns_authorization,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "DnsAuthorization" + metadata_type: "OperationMetadata" + }; + } + + // Deletes a single DnsAuthorization. + rpc DeleteDnsAuthorization(DeleteDnsAuthorizationRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/dnsAuthorizations/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Lists CertificateIssuanceConfigs in a given project and location. + rpc ListCertificateIssuanceConfigs(ListCertificateIssuanceConfigsRequest) + returns (ListCertificateIssuanceConfigsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/certificateIssuanceConfigs" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single CertificateIssuanceConfig. + rpc GetCertificateIssuanceConfig(GetCertificateIssuanceConfigRequest) + returns (CertificateIssuanceConfig) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/certificateIssuanceConfigs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new CertificateIssuanceConfig in a given project and location. + rpc CreateCertificateIssuanceConfig(CreateCertificateIssuanceConfigRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/certificateIssuanceConfigs" + body: "certificate_issuance_config" + }; + option (google.api.method_signature) = + "parent,certificate_issuance_config,certificate_issuance_config_id"; + option (google.longrunning.operation_info) = { + response_type: "CertificateIssuanceConfig" + metadata_type: "OperationMetadata" + }; + } + + // Deletes a single CertificateIssuanceConfig. + rpc DeleteCertificateIssuanceConfig(DeleteCertificateIssuanceConfigRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/certificateIssuanceConfigs/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } +} + +// Request for the `ListCertificates` method. +message ListCertificatesRequest { + // Required. The project and location from which the certificate should be + // listed, specified in the format `projects/*/locations/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Maximum number of certificates to return per call. + int32 page_size = 2; + + // The value returned by the last `ListCertificatesResponse`. Indicates that + // this is a continuation of a prior `ListCertificates` call, and that the + // system should return the next page of data. + string page_token = 3; + + // Filter expression to restrict the Certificates returned. + string filter = 4; + + // A list of Certificate field names used to specify the order of the returned + // results. The default sorting order is ascending. To specify descending + // order for a field, add a suffix " desc". + string order_by = 5; +} + +// Response for the `ListCertificates` method. +message ListCertificatesResponse { + // A list of certificates for the parent resource. + repeated Certificate certificates = 1; + + // If there might be more results than those appearing in this response, then + // `next_page_token` is included. To get the next set of results, call this + // method again using the value of `next_page_token` as `page_token`. + string next_page_token = 2; + + // A list of locations that could not be reached. + repeated string unreachable = 3; +} + +// Request for the `GetCertificate` method. +message GetCertificateRequest { + // Required. A name of the certificate to describe. Must be in the format + // `projects/*/locations/*/certificates/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "certificatemanager.googleapis.com/Certificate" + } + ]; +} + +// Request for the `CreateCertificate` method. +message CreateCertificateRequest { + // Required. The parent resource of the certificate. Must be in the format + // `projects/*/locations/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. A user-provided name of the certificate. + string certificate_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. A definition of the certificate to create. + Certificate certificate = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request for the `UpdateCertificate` method. +message UpdateCertificateRequest { + // Required. A definition of the certificate to update. + Certificate certificate = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The update mask applies to the resource. For the `FieldMask` + // definition, see + // https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request for the `DeleteCertificate` method. +message DeleteCertificateRequest { + // Required. A name of the certificate to delete. Must be in the format + // `projects/*/locations/*/certificates/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "certificatemanager.googleapis.com/Certificate" + } + ]; +} + +// Request for the `ListCertificateMaps` method. +message ListCertificateMapsRequest { + // Required. The project and location from which the certificate maps should + // be listed, specified in the format `projects/*/locations/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Maximum number of certificate maps to return per call. + int32 page_size = 2; + + // The value returned by the last `ListCertificateMapsResponse`. Indicates + // that this is a continuation of a prior `ListCertificateMaps` call, and that + // the system should return the next page of data. + string page_token = 3; + + // Filter expression to restrict the Certificates Maps returned. + string filter = 4; + + // A list of Certificate Map field names used to specify the order of the + // returned results. The default sorting order is ascending. To specify + // descending order for a field, add a suffix " desc". + string order_by = 5; +} + +// Response for the `ListCertificateMaps` method. +message ListCertificateMapsResponse { + // A list of certificate maps for the parent resource. + repeated CertificateMap certificate_maps = 1; + + // If there might be more results than those appearing in this response, then + // `next_page_token` is included. To get the next set of results, call this + // method again using the value of `next_page_token` as `page_token`. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Request for the `GetCertificateMap` method. +message GetCertificateMapRequest { + // Required. A name of the certificate map to describe. Must be in the format + // `projects/*/locations/*/certificateMaps/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "certificatemanager.googleapis.com/CertificateMap" + } + ]; +} + +// Request for the `CreateCertificateMap` method. +message CreateCertificateMapRequest { + // Required. The parent resource of the certificate map. Must be in the format + // `projects/*/locations/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. A user-provided name of the certificate map. + string certificate_map_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. A definition of the certificate map to create. + CertificateMap certificate_map = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request for the `UpdateCertificateMap` method. +message UpdateCertificateMapRequest { + // Required. A definition of the certificate map to update. + CertificateMap certificate_map = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The update mask applies to the resource. For the `FieldMask` + // definition, see + // https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request for the `DeleteCertificateMap` method. +message DeleteCertificateMapRequest { + // Required. A name of the certificate map to delete. Must be in the format + // `projects/*/locations/*/certificateMaps/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "certificatemanager.googleapis.com/CertificateMap" + } + ]; +} + +// Request for the `ListCertificateMapEntries` method. +message ListCertificateMapEntriesRequest { + // Required. The project, location and certificate map from which the + // certificate map entries should be listed, specified in the format + // `projects/*/locations/*/certificateMaps/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "certificatemanager.googleapis.com/CertificateMap" + } + ]; + + // Maximum number of certificate map entries to return. The service may return + // fewer than this value. + // If unspecified, at most 50 certificate map entries will be returned. + // The maximum value is 1000; values above 1000 will be coerced to 1000. + int32 page_size = 2; + + // The value returned by the last `ListCertificateMapEntriesResponse`. + // Indicates that this is a continuation of a prior + // `ListCertificateMapEntries` call, and that the system should return the + // next page of data. + string page_token = 3; + + // Filter expression to restrict the returned Certificate Map Entries. + string filter = 4; + + // A list of Certificate Map Entry field names used to specify + // the order of the returned results. The default sorting order is ascending. + // To specify descending order for a field, add a suffix " desc". + string order_by = 5; +} + +// Response for the `ListCertificateMapEntries` method. +message ListCertificateMapEntriesResponse { + // A list of certificate map entries for the parent resource. + repeated CertificateMapEntry certificate_map_entries = 1; + + // If there might be more results than those appearing in this response, then + // `next_page_token` is included. To get the next set of results, call this + // method again using the value of `next_page_token` as `page_token`. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Request for the `GetCertificateMapEntry` method. +message GetCertificateMapEntryRequest { + // Required. A name of the certificate map entry to describe. Must be in the + // format `projects/*/locations/*/certificateMaps/*/certificateMapEntries/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "certificatemanager.googleapis.com/CertificateMapEntry" + } + ]; +} + +// Request for the `CreateCertificateMapEntry` method. +message CreateCertificateMapEntryRequest { + // Required. The parent resource of the certificate map entry. Must be in the + // format `projects/*/locations/*/certificateMaps/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "certificatemanager.googleapis.com/CertificateMap" + } + ]; + + // Required. A user-provided name of the certificate map entry. + string certificate_map_entry_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. A definition of the certificate map entry to create. + CertificateMapEntry certificate_map_entry = 3 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request for the `UpdateCertificateMapEntry` method. +message UpdateCertificateMapEntryRequest { + // Required. A definition of the certificate map entry to create map entry. + CertificateMapEntry certificate_map_entry = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The update mask applies to the resource. For the `FieldMask` + // definition, see + // https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request for the `DeleteCertificateMapEntry` method. +message DeleteCertificateMapEntryRequest { + // Required. A name of the certificate map entry to delete. Must be in the + // format `projects/*/locations/*/certificateMaps/*/certificateMapEntries/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "certificatemanager.googleapis.com/CertificateMapEntry" + } + ]; +} + +// Request for the `ListDnsAuthorizations` method. +message ListDnsAuthorizationsRequest { + // Required. The project and location from which the dns authorizations should + // be listed, specified in the format `projects/*/locations/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Maximum number of dns authorizations to return per call. + int32 page_size = 2; + + // The value returned by the last `ListDnsAuthorizationsResponse`. Indicates + // that this is a continuation of a prior `ListDnsAuthorizations` call, and + // that the system should return the next page of data. + string page_token = 3; + + // Filter expression to restrict the Dns Authorizations returned. + string filter = 4; + + // A list of Dns Authorization field names used to specify the order of the + // returned results. The default sorting order is ascending. To specify + // descending order for a field, add a suffix " desc". + string order_by = 5; +} + +// Response for the `ListDnsAuthorizations` method. +message ListDnsAuthorizationsResponse { + // A list of dns authorizations for the parent resource. + repeated DnsAuthorization dns_authorizations = 1; + + // If there might be more results than those appearing in this response, then + // `next_page_token` is included. To get the next set of results, call this + // method again using the value of `next_page_token` as `page_token`. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Request for the `GetDnsAuthorization` method. +message GetDnsAuthorizationRequest { + // Required. A name of the dns authorization to describe. Must be in the + // format `projects/*/locations/*/dnsAuthorizations/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "certificatemanager.googleapis.com/DnsAuthorization" + } + ]; +} + +// Request for the `CreateDnsAuthorization` method. +message CreateDnsAuthorizationRequest { + // Required. The parent resource of the dns authorization. Must be in the + // format `projects/*/locations/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. A user-provided name of the dns authorization. + string dns_authorization_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. A definition of the dns authorization to create. + DnsAuthorization dns_authorization = 3 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request for the `UpdateDnsAuthorization` method. +message UpdateDnsAuthorizationRequest { + // Required. A definition of the dns authorization to update. + DnsAuthorization dns_authorization = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The update mask applies to the resource. For the `FieldMask` + // definition, see + // https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request for the `DeleteDnsAuthorization` method. +message DeleteDnsAuthorizationRequest { + // Required. A name of the dns authorization to delete. Must be in the format + // `projects/*/locations/*/dnsAuthorizations/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "certificatemanager.googleapis.com/DnsAuthorization" + } + ]; +} + +// Represents the metadata of the long-running operation. Output only. +message OperationMetadata { + // The time the operation was created. + google.protobuf.Timestamp create_time = 1; + + // The time the operation finished running. + google.protobuf.Timestamp end_time = 2; + + // Server-defined resource path for the target of the operation. + string target = 3; + + // Name of the verb executed by the operation. + string verb = 4; + + // Human-readable status of the operation, if any. + string status_message = 5; + + // Identifies whether the user has requested cancellation + // of the operation. Operations that have successfully been cancelled + // have [Operation.error][] value with a + // [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to + // `Code.CANCELLED`. + bool requested_cancellation = 6; + + // API version used to start the operation. + string api_version = 7; +} + +// Defines TLS certificate. +message Certificate { + option (google.api.resource) = { + type: "certificatemanager.googleapis.com/Certificate" + pattern: "projects/{project}/locations/{location}/certificates/{certificate}" + }; + + // Certificate data for a SelfManaged Certificate. + // SelfManaged Certificates are uploaded by the user. Updating such + // certificates before they expire remains the user's responsibility. + message SelfManagedCertificate { + // Input only. The PEM-encoded certificate chain. + // Leaf certificate comes first, followed by intermediate ones if any. + string pem_certificate = 1 [(google.api.field_behavior) = INPUT_ONLY]; + + // Input only. The PEM-encoded private key of the leaf certificate. + string pem_private_key = 2 [(google.api.field_behavior) = INPUT_ONLY]; + } + + // Configuration and state of a Managed Certificate. + // Certificate Manager provisions and renews Managed Certificates + // automatically, for as long as it's authorized to do so. + message ManagedCertificate { + enum State { + STATE_UNSPECIFIED = 0; + + // Certificate Manager attempts to provision or renew the certificate. + // If the process takes longer than expected, consult the + // `provisioning_issue` field. + PROVISIONING = 1; + + // Multiple certificate provisioning attempts failed and Certificate + // Manager gave up. To try again, delete and create a new managed + // Certificate resource. + // For details see the `provisioning_issue` field. + FAILED = 2; + + // The certificate management is working, and a certificate has been + // provisioned. + ACTIVE = 3; + } + + // Information about issues with provisioning a Managed Certificate. + message ProvisioningIssue { + enum Reason { + REASON_UNSPECIFIED = 0; + + // Certificate provisioning failed due to an issue with one or more of + // the domains on the certificate. + // For details of which domains failed, consult the + // `authorization_attempt_info` field. + AUTHORIZATION_ISSUE = 1; + + // Exceeded Certificate Authority quotas or internal rate limits of the + // system. Provisioning may take longer to complete. + RATE_LIMITED = 2; + } + + // Output only. Reason for provisioning failures. + Reason reason = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Human readable explanation about the issue. Provided to + // help address the configuration issues. Not guaranteed to be stable. For + // programmatic access use Reason enum. + string details = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // State of the latest attempt to authorize a domain for certificate + // issuance. + message AuthorizationAttemptInfo { + enum State { + STATE_UNSPECIFIED = 0; + + // Certificate provisioning for this domain is under way. GCP will + // attempt to authorize the domain. + AUTHORIZING = 1; + + // A managed certificate can be provisioned, no issues for this domain. + AUTHORIZED = 6; + + // Attempt to authorize the domain failed. This prevents the Managed + // Certificate from being issued. + // See `failure_reason` and `details` fields for more information. + FAILED = 7; + } + + enum FailureReason { + FAILURE_REASON_UNSPECIFIED = 0; + + // There was a problem with the user's DNS or load balancer + // configuration for this domain. + CONFIG = 1; + + // Certificate issuance forbidden by an explicit CAA record for the + // domain or a failure to check CAA records for the domain. + CAA = 2; + + // Reached a CA or internal rate-limit for the domain, + // e.g. for certificates per top-level private domain. + RATE_LIMITED = 3; + } + + // Domain name of the authorization attempt. + string domain = 1; + + // Output only. State of the domain for managed certificate issuance. + State state = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reason for failure of the authorization attempt for the + // domain. + FailureReason failure_reason = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Human readable explanation for reaching the state. + // Provided to help address the configuration issues. Not guaranteed to be + // stable. For programmatic access use FailureReason enum. + string details = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Immutable. The domains for which a managed SSL certificate will be + // generated. Wildcard domains are only supported with DNS challenge + // resolution. + repeated string domains = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Authorizations that will be used for performing domain + // authorization. + repeated string dns_authorizations = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "certificatemanager.googleapis.com/DnsAuthorization" + } + ]; + + // The resource name for a + // [CertificateIssuanceConfig][google.cloud.certificatemanager.v1.CertificateIssuanceConfig] + // used to configure private PKI certificates in the format + // `projects/*/locations/*/certificateIssuanceConfigs/*`. + // If this field is not set, the certificates will instead be publicly + // signed as documented at + // https://cloud.google.com/load-balancing/docs/ssl-certificates/google-managed-certs#caa. + string issuance_config = 6 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "certificatemanager.googleapis.com/CertificateIssuanceConfig" + } + ]; + + // Output only. State of the managed certificate resource. + State state = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Information about issues with provisioning a Managed + // Certificate. + ProvisioningIssue provisioning_issue = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Detailed state of the latest authorization attempt for each + // domain specified for managed certificate resource. + repeated AuthorizationAttemptInfo authorization_attempt_info = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Certificate scope. + enum Scope { + // Certificates with default scope are served from core Google data centers. + // If unsure, choose this option. + DEFAULT = 0; + + // Certificates with scope EDGE_CACHE are special-purposed certificates, + // served from non-core Google data centers. + EDGE_CACHE = 1; + } + + // A user-defined name of the certificate. Certificate names must be unique + // globally and match pattern `projects/*/locations/*/certificates/*`. + string name = 1; + + // One or more paragraphs of text description of a certificate. + string description = 8; + + // Output only. The creation timestamp of a Certificate. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The last update timestamp of a Certificate. + google.protobuf.Timestamp update_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Set of labels associated with a Certificate. + map<string, string> labels = 4; + + oneof type { + // If set, defines data of a self-managed certificate. + SelfManagedCertificate self_managed = 5; + + // If set, contains configuration and state of a managed certificate. + ManagedCertificate managed = 11; + } + + // Output only. The list of Subject Alternative Names of dnsName type defined + // in the certificate (see RFC 5280 4.2.1.6). Managed certificates that + // haven't been provisioned yet have this field populated with a value of the + // managed.domains field. + repeated string san_dnsnames = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The PEM-encoded certificate chain. + string pem_certificate = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The expiry timestamp of a Certificate. + google.protobuf.Timestamp expire_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The scope of the certificate. + Scope scope = 12 [(google.api.field_behavior) = IMMUTABLE]; +} + +// Defines a collection of certificate configurations. +message CertificateMap { + option (google.api.resource) = { + type: "certificatemanager.googleapis.com/CertificateMap" + pattern: "projects/{project}/locations/{location}/certificateMaps/{certificate_map}" + }; + + // Describes a Target Proxy which uses this Certificate Map. + message GclbTarget { + // Defines IP configuration where this Certificate Map is serving. + message IpConfig { + // Output only. An external IP address. + string ip_address = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Ports. + repeated uint32 ports = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // A Target Proxy to which this map is attached to. + oneof target_proxy { + // Output only. This field returns the resource name in the following + // format: + // `//compute.googleapis.com/projects/*/global/targetHttpsProxies/*`. + string target_https_proxy = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. This field returns the resource name in the following + // format: + // `//compute.googleapis.com/projects/*/global/targetSslProxies/*`. + string target_ssl_proxy = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. IP configurations for this Target Proxy where the + // Certificate Map is serving. + repeated IpConfig ip_configs = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // A user-defined name of the Certificate Map. Certificate Map names must be + // unique globally and match pattern + // `projects/*/locations/*/certificateMaps/*`. + string name = 1; + + // One or more paragraphs of text description of a certificate map. + string description = 5; + + // Output only. The creation timestamp of a Certificate Map. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The update timestamp of a Certificate Map. + google.protobuf.Timestamp update_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Set of labels associated with a Certificate Map. + map<string, string> labels = 3; + + // Output only. A list of GCLB targets which use this Certificate Map. + // A Target Proxy is only present on this list if it's attached to a + // Forwarding Rule. + repeated GclbTarget gclb_targets = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Defines a certificate map entry. +message CertificateMapEntry { + option (google.api.resource) = { + type: "certificatemanager.googleapis.com/CertificateMapEntry" + pattern: "projects/{project}/locations/{location}/certificateMaps/{certificate_map}/certificateMapEntries/{certificate_map_entry}" + }; + + // Defines predefined cases other than SNI-hostname match when this + // configuration should be applied. + enum Matcher { + // A matcher has't been recognized. + MATCHER_UNSPECIFIED = 0; + + // A primary certificate that is served when SNI wasn't specified in the + // request or SNI couldn't be found in the map. + PRIMARY = 1; + } + + // A user-defined name of the Certificate Map Entry. Certificate Map Entry + // names must be unique globally and match pattern + // `projects/*/locations/*/certificateMaps/*/certificateMapEntries/*`. + string name = 1; + + // One or more paragraphs of text description of a certificate map entry. + string description = 9; + + // Output only. The creation timestamp of a Certificate Map Entry. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The update timestamp of a Certificate Map Entry. + google.protobuf.Timestamp update_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Set of labels associated with a Certificate Map Entry. + map<string, string> labels = 4; + + oneof match { + // A Hostname (FQDN, e.g. `example.com`) or a wildcard hostname expression + // (`*.example.com`) for a set of hostnames with common suffix. Used as + // Server Name Indication (SNI) for selecting a proper certificate. + string hostname = 5; + + // A predefined matcher for particular cases, other than SNI selection. + Matcher matcher = 10; + } + + // A set of Certificates defines for the given `hostname`. There can be + // defined up to fifteen certificates in each Certificate Map Entry. Each + // certificate must match pattern `projects/*/locations/*/certificates/*`. + repeated string certificates = 7 [(google.api.resource_reference) = { + type: "certificatemanager.googleapis.com/Certificate" + }]; + + // Output only. A serving state of this Certificate Map Entry. + ServingState state = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A DnsAuthorization resource describes a way to perform domain authorization +// for certificate issuance. +message DnsAuthorization { + option (google.api.resource) = { + type: "certificatemanager.googleapis.com/DnsAuthorization" + pattern: "projects/{project}/locations/{location}/dnsAuthorizations/{dns_authorization}" + }; + + // The structure describing the DNS Resource Record that needs to be added + // to DNS configuration for the authorization to be usable by + // certificate. + message DnsResourceRecord { + // Output only. Fully qualified name of the DNS Resource Record. + // e.g. `_acme-challenge.example.com` + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Type of the DNS Resource Record. + // Currently always set to "CNAME". + string type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Data of the DNS Resource Record. + string data = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // A user-defined name of the dns authorization. DnsAuthorization names must + // be unique globally and match pattern + // `projects/*/locations/*/dnsAuthorizations/*`. + string name = 1; + + // Output only. The creation timestamp of a DnsAuthorization. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The last update timestamp of a DnsAuthorization. + google.protobuf.Timestamp update_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Set of labels associated with a DnsAuthorization. + map<string, string> labels = 4; + + // One or more paragraphs of text description of a DnsAuthorization. + string description = 5; + + // Required. Immutable. A domain which is being authorized. A DnsAuthorization + // resource covers a single domain and its wildcard, e.g. authorization for + // `example.com` can be used to issue certificates for `example.com` and + // `*.example.com`. + string domain = 6 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Output only. DNS Resource Record that needs to be added to DNS + // configuration. + DnsResourceRecord dns_resource_record = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Defines set of serving states associated with a resource. +enum ServingState { + // The status is undefined. + SERVING_STATE_UNSPECIFIED = 0; + + // The configuration is serving. + ACTIVE = 1; + + // Update is in progress. Some frontends may serve this configuration. + PENDING = 2; +} |
