1// Copyright 2023 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15syntax = "proto3"; 16 17package google.cloud.securesourcemanager.v1; 18 19import "google/api/annotations.proto"; 20import "google/api/client.proto"; 21import "google/api/field_behavior.proto"; 22import "google/api/resource.proto"; 23import "google/iam/v1/iam_policy.proto"; 24import "google/iam/v1/policy.proto"; 25import "google/longrunning/operations.proto"; 26import "google/protobuf/empty.proto"; 27import "google/protobuf/timestamp.proto"; 28 29option csharp_namespace = "Google.Cloud.SecureSourceManager.V1"; 30option go_package = "cloud.google.com/go/securesourcemanager/apiv1/securesourcemanagerpb;securesourcemanagerpb"; 31option java_multiple_files = true; 32option java_outer_classname = "SecureSourceManagerProto"; 33option java_package = "com.google.cloud.securesourcemanager.v1"; 34option php_namespace = "Google\\Cloud\\SecureSourceManager\\V1"; 35option ruby_package = "Google::Cloud::SecureSourceManager::V1"; 36option (google.api.resource_definition) = { 37 type: "cloudkms.googleapis.com/CryptoKey" 38 pattern: "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}" 39}; 40option (google.api.resource_definition) = { 41 type: "privateca.googleapis.com/CaPool" 42 pattern: "projects/{project}/locations/{location}/caPools/{ca_pool}" 43}; 44option (google.api.resource_definition) = { 45 type: "compute.googleapis.com/ServiceAttachment" 46 pattern: "projects/{project}/regions/{region}/serviceAttachments/{service_attachment}" 47}; 48 49// Secure Source Manager API 50// 51// Access Secure Source Manager instances, resources, and repositories. 52// 53// This API is split across two servers: the Control Plane and the Data Plane. 54// 55// Data Plane endpoints are hosted directly by your Secure Source Manager 56// instance, so you must connect to your instance's API hostname to access 57// them. The API hostname looks like the following: 58// 59// https://[instance-id]-[project-number]-api.[location].sourcemanager.dev 60// 61// For example, 62// 63// https://my-instance-702770452863-api.us-central1.sourcemanager.dev 64// 65// Data Plane endpoints are denoted with **Host: Data Plane**. 66// 67// All other endpoints are found in the normal Cloud API location, namely, 68// `securcesourcemanager.googleapis.com`. 69service SecureSourceManager { 70 option (google.api.default_host) = "securesourcemanager.googleapis.com"; 71 option (google.api.oauth_scopes) = 72 "https://www.googleapis.com/auth/cloud-platform"; 73 74 // Lists Instances in a given project and location. 75 rpc ListInstances(ListInstancesRequest) returns (ListInstancesResponse) { 76 option (google.api.http) = { 77 get: "/v1/{parent=projects/*/locations/*}/instances" 78 }; 79 option (google.api.method_signature) = "parent"; 80 } 81 82 // Gets details of a single instance. 83 rpc GetInstance(GetInstanceRequest) returns (Instance) { 84 option (google.api.http) = { 85 get: "/v1/{name=projects/*/locations/*/instances/*}" 86 }; 87 option (google.api.method_signature) = "name"; 88 } 89 90 // Creates a new instance in a given project and location. 91 rpc CreateInstance(CreateInstanceRequest) 92 returns (google.longrunning.Operation) { 93 option (google.api.http) = { 94 post: "/v1/{parent=projects/*/locations/*}/instances" 95 body: "instance" 96 }; 97 option (google.api.method_signature) = "parent,instance,instance_id"; 98 option (google.longrunning.operation_info) = { 99 response_type: "Instance" 100 metadata_type: "OperationMetadata" 101 }; 102 } 103 104 // Deletes a single instance. 105 rpc DeleteInstance(DeleteInstanceRequest) 106 returns (google.longrunning.Operation) { 107 option (google.api.http) = { 108 delete: "/v1/{name=projects/*/locations/*/instances/*}" 109 }; 110 option (google.api.method_signature) = "name"; 111 option (google.longrunning.operation_info) = { 112 response_type: "google.protobuf.Empty" 113 metadata_type: "OperationMetadata" 114 }; 115 } 116 117 // Lists Repositories in a given project and location. 118 // 119 // **Host: Data Plane** 120 rpc ListRepositories(ListRepositoriesRequest) 121 returns (ListRepositoriesResponse) { 122 option (google.api.http) = { 123 get: "/v1/{parent=projects/*/locations/*}/repositories" 124 }; 125 option (google.api.method_signature) = "parent"; 126 } 127 128 // Gets metadata of a repository. 129 // 130 // **Host: Data Plane** 131 rpc GetRepository(GetRepositoryRequest) returns (Repository) { 132 option (google.api.http) = { 133 get: "/v1/{name=projects/*/locations/*/repositories/*}" 134 }; 135 option (google.api.method_signature) = "name"; 136 } 137 138 // Creates a new repository in a given project and location. 139 // 140 // **Host: Data Plane** 141 rpc CreateRepository(CreateRepositoryRequest) 142 returns (google.longrunning.Operation) { 143 option (google.api.http) = { 144 post: "/v1/{parent=projects/*/locations/*}/repositories" 145 body: "repository" 146 }; 147 option (google.api.method_signature) = "parent,repository,repository_id"; 148 option (google.longrunning.operation_info) = { 149 response_type: "Repository" 150 metadata_type: "OperationMetadata" 151 }; 152 } 153 154 // Deletes a Repository. 155 // 156 // **Host: Data Plane** 157 rpc DeleteRepository(DeleteRepositoryRequest) 158 returns (google.longrunning.Operation) { 159 option (google.api.http) = { 160 delete: "/v1/{name=projects/*/locations/*/repositories/*}" 161 }; 162 option (google.api.method_signature) = "name"; 163 option (google.longrunning.operation_info) = { 164 response_type: "google.protobuf.Empty" 165 metadata_type: "OperationMetadata" 166 }; 167 } 168 169 // Get IAM policy for a repository. 170 rpc GetIamPolicyRepo(google.iam.v1.GetIamPolicyRequest) 171 returns (google.iam.v1.Policy) { 172 option (google.api.http) = { 173 get: "/v1/{resource=projects/*/locations/*/repositories/*}:getIamPolicy" 174 }; 175 option (google.api.method_signature) = "resource"; 176 } 177 178 // Set IAM policy on a repository. 179 rpc SetIamPolicyRepo(google.iam.v1.SetIamPolicyRequest) 180 returns (google.iam.v1.Policy) { 181 option (google.api.http) = { 182 post: "/v1/{resource=projects/*/locations/*/repositories/*}:setIamPolicy" 183 body: "*" 184 }; 185 option (google.api.method_signature) = "resource"; 186 } 187 188 // Test IAM permissions on a repository. 189 // IAM permission checks are not required on this method. 190 rpc TestIamPermissionsRepo(google.iam.v1.TestIamPermissionsRequest) 191 returns (google.iam.v1.TestIamPermissionsResponse) { 192 option (google.api.http) = { 193 post: "/v1/{resource=projects/*/locations/*/repositories/*}:testIamPermissions" 194 body: "*" 195 }; 196 option (google.api.method_signature) = "resource"; 197 } 198} 199 200// A resource that represents a Secure Source Manager instance. 201message Instance { 202 option (google.api.resource) = { 203 type: "securesourcemanager.googleapis.com/Instance" 204 pattern: "projects/{project}/locations/{location}/instances/{instance}" 205 style: DECLARATIVE_FRIENDLY 206 }; 207 208 // Secure Source Manager instance state. 209 enum State { 210 // Not set. This should only be the case for incoming requests. 211 STATE_UNSPECIFIED = 0; 212 213 // Instance is being created. 214 CREATING = 1; 215 216 // Instance is ready. 217 ACTIVE = 2; 218 219 // Instance is being deleted. 220 DELETING = 3; 221 222 // Instance is paused. 223 PAUSED = 4; 224 } 225 226 // Provides information about the current instance state. 227 enum StateNote { 228 // STATE_NOTE_UNSPECIFIED as the first value of State. 229 STATE_NOTE_UNSPECIFIED = 0; 230 231 // CMEK access is unavailable. 232 PAUSED_CMEK_UNAVAILABLE = 1; 233 234 // INSTANCE_RESUMING indicates that the instance was previously paused 235 // and is under the process of being brought back. 236 INSTANCE_RESUMING = 2 [deprecated = true]; 237 } 238 239 // HostConfig has different instance endpoints. 240 message HostConfig { 241 // Output only. HTML hostname. 242 string html = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 243 244 // Output only. API hostname. This is the hostname to use for **Host: Data 245 // Plane** endpoints. 246 string api = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 247 248 // Output only. Git HTTP hostname. 249 string git_http = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 250 251 // Output only. Git SSH hostname. 252 string git_ssh = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; 253 } 254 255 // Optional. A unique identifier for an instance. The name should be of the 256 // format: 257 // `projects/{project_number}/locations/{location_id}/instances/{instance_id}` 258 // 259 // `project_number`: Maps to a unique int64 id assigned to each project. 260 // 261 // `location_id`: Refers to the region where the instance will be deployed. 262 // Since Secure Source Manager is a regional service, it must be one of the 263 // valid GCP regions. 264 // 265 // `instance_id`: User provided name for the instance, must be unique for a 266 // project_number and location_id combination. 267 string name = 1 [(google.api.field_behavior) = OPTIONAL]; 268 269 // Output only. Create timestamp. 270 google.protobuf.Timestamp create_time = 2 271 [(google.api.field_behavior) = OUTPUT_ONLY]; 272 273 // Output only. Update timestamp. 274 google.protobuf.Timestamp update_time = 3 275 [(google.api.field_behavior) = OUTPUT_ONLY]; 276 277 // Optional. Labels as key value pairs. 278 map<string, string> labels = 4 [(google.api.field_behavior) = OPTIONAL]; 279 280 // Output only. Current state of the instance. 281 State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; 282 283 // Output only. An optional field providing information about the current 284 // instance state. 285 StateNote state_note = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; 286 287 // Optional. Immutable. Customer-managed encryption key name, in the format 288 // projects/*/locations/*/keyRings/*/cryptoKeys/*. 289 string kms_key = 11 [ 290 (google.api.field_behavior) = IMMUTABLE, 291 (google.api.resource_reference) = { 292 type: "cloudkms.googleapis.com/CryptoKey" 293 } 294 ]; 295 296 // Output only. A list of hostnames for this instance. 297 HostConfig host_config = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; 298} 299 300// Metadata of a Secure Source Manager repository. 301message Repository { 302 option (google.api.resource) = { 303 type: "securesourcemanager.googleapis.com/Repository" 304 pattern: "projects/{project}/locations/{location}/repositories/{repository}" 305 }; 306 307 // URIs for the repository. 308 message URIs { 309 // Output only. HTML is the URI for user to view the repository in a 310 // browser. 311 string html = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 312 313 // Output only. git_https is the git HTTPS URI for git operations. 314 string git_https = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 315 316 // Output only. API is the URI for API access. 317 string api = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 318 } 319 320 // Repository initialization configuration. 321 message InitialConfig { 322 // Default branch name of the repository. 323 string default_branch = 1; 324 325 // List of gitignore template names user can choose from. 326 // Valid values: actionscript, ada, agda, android, 327 // anjuta, ansible, appcelerator-titanium, app-engine, archives, 328 // arch-linux-packages, atmel-studio, autotools, backup, bazaar, bazel, 329 // bitrix, bricx-cc, c, cake-php, calabash, cf-wheels, chef-cookbook, 330 // clojure, cloud9, c-make, code-igniter, code-kit, code-sniffer, 331 // common-lisp, composer, concrete5, coq, cordova, cpp, craft-cms, cuda, 332 // cvs, d, dart, dart-editor, delphi, diff, dm, dreamweaver, dropbox, 333 // drupal, drupal-7, eagle, eclipse, eiffel-studio, elisp, elixir, elm, 334 // emacs, ensime, epi-server, erlang, esp-idf, espresso, exercism, 335 // expression-engine, ext-js, fancy, finale, flex-builder, force-dot-com, 336 // fortran, fuel-php, gcov, git-book, gnome-shell-extension, go, godot, gpg, 337 // gradle, grails, gwt, haskell, hugo, iar-ewarm, idris, igor-pro, images, 338 // infor-cms, java, jboss, jboss-4, jboss-6, jdeveloper, jekyll, 339 // jenkins-home, jenv, jet-brains, jigsaw, joomla, julia, jupyter-notebooks, 340 // kate, kdevelop4, kentico, ki-cad, kohana, kotlin, lab-view, laravel, 341 // lazarus, leiningen, lemon-stand, libre-office, lilypond, linux, lithium, 342 // logtalk, lua, lyx, mac-os, magento, magento-1, magento-2, matlab, maven, 343 // mercurial, mercury, metals, meta-programming-system, meteor, 344 // microsoft-office, model-sim, momentics, mono-develop, nanoc, net-beans, 345 // nikola, nim, ninja, node, notepad-pp, nwjs, objective--c, ocaml, octave, 346 // opa, open-cart, openssl, oracle-forms, otto, packer, patch, perl, perl6, 347 // phalcon, phoenix, pimcore, play-framework, plone, prestashop, processing, 348 // psoc-creator, puppet, pure-script, putty, python, qooxdoo, qt, r, racket, 349 // rails, raku, red, redcar, redis, rhodes-rhomobile, ros, ruby, rust, sam, 350 // sass, sbt, scala, scheme, scons, scrivener, sdcc, seam-gen, sketch-up, 351 // slick-edit, smalltalk, snap, splunk, stata, stella, sublime-text, 352 // sugar-crm, svn, swift, symfony, symphony-cms, synopsys-vcs, tags, 353 // terraform, tex, text-mate, textpattern, think-php, tortoise-git, 354 // turbo-gears-2, typo3, umbraco, unity, unreal-engine, vagrant, vim, 355 // virtual-env, virtuoso, visual-studio, visual-studio-code, vue, vvvv, waf, 356 // web-methods, windows, word-press, xcode, xilinx, xilinx-ise, xojo, 357 // yeoman, yii, zend-framework, zephir. 358 repeated string gitignores = 2; 359 360 // License template name user can choose from. 361 // Valid values: license-0bsd, license-389-exception, aal, abstyles, 362 // adobe-2006, adobe-glyph, adsl, afl-1-1, afl-1-2, afl-2-0, afl-2-1, 363 // afl-3-0, afmparse, agpl-1-0, agpl-1-0-only, agpl-1-0-or-later, 364 // agpl-3-0-only, agpl-3-0-or-later, aladdin, amdplpa, aml, ampas, antlr-pd, 365 // antlr-pd-fallback, apache-1-0, apache-1-1, apache-2-0, apafml, apl-1-0, 366 // apsl-1-0, apsl-1-1, apsl-1-2, apsl-2-0, artistic-1-0, artistic-1-0-cl8, 367 // artistic-1-0-perl, artistic-2-0, autoconf-exception-2-0, 368 // autoconf-exception-3-0, bahyph, barr, beerware, bison-exception-2-2, 369 // bittorrent-1-0, bittorrent-1-1, blessing, blueoak-1-0-0, 370 // bootloader-exception, borceux, bsd-1-clause, bsd-2-clause, 371 // bsd-2-clause-freebsd, bsd-2-clause-netbsd, bsd-2-clause-patent, 372 // bsd-2-clause-views, bsd-3-clause, bsd-3-clause-attribution, 373 // bsd-3-clause-clear, bsd-3-clause-lbnl, bsd-3-clause-modification, 374 // bsd-3-clause-no-nuclear-license, bsd-3-clause-no-nuclear-license-2014, 375 // bsd-3-clause-no-nuclear-warranty, bsd-3-clause-open-mpi, bsd-4-clause, 376 // bsd-4-clause-shortened, bsd-4-clause-uc, bsd-protection, bsd-source-code, 377 // bsl-1-0, busl-1-1, cal-1-0, cal-1-0-combined-work-exception, caldera, 378 // catosl-1-1, cc0-1-0, cc-by-1-0, cc-by-2-0, cc-by-3-0, cc-by-3-0-at, 379 // cc-by-3-0-us, cc-by-4-0, cc-by-nc-1-0, cc-by-nc-2-0, cc-by-nc-3-0, 380 // cc-by-nc-4-0, cc-by-nc-nd-1-0, cc-by-nc-nd-2-0, cc-by-nc-nd-3-0, 381 // cc-by-nc-nd-3-0-igo, cc-by-nc-nd-4-0, cc-by-nc-sa-1-0, cc-by-nc-sa-2-0, 382 // cc-by-nc-sa-3-0, cc-by-nc-sa-4-0, cc-by-nd-1-0, cc-by-nd-2-0, 383 // cc-by-nd-3-0, cc-by-nd-4-0, cc-by-sa-1-0, cc-by-sa-2-0, cc-by-sa-2-0-uk, 384 // cc-by-sa-2-1-jp, cc-by-sa-3-0, cc-by-sa-3-0-at, cc-by-sa-4-0, cc-pddc, 385 // cddl-1-0, cddl-1-1, cdla-permissive-1-0, cdla-sharing-1-0, cecill-1-0, 386 // cecill-1-1, cecill-2-0, cecill-2-1, cecill-b, cecill-c, cern-ohl-1-1, 387 // cern-ohl-1-2, cern-ohl-p-2-0, cern-ohl-s-2-0, cern-ohl-w-2-0, clartistic, 388 // classpath-exception-2-0, clisp-exception-2-0, cnri-jython, cnri-python, 389 // cnri-python-gpl-compatible, condor-1-1, copyleft-next-0-3-0, 390 // copyleft-next-0-3-1, cpal-1-0, cpl-1-0, cpol-1-02, crossword, 391 // crystal-stacker, cua-opl-1-0, cube, c-uda-1-0, curl, d-fsl-1-0, diffmark, 392 // digirule-foss-exception, doc, dotseqn, drl-1-0, dsdp, dvipdfm, ecl-1-0, 393 // ecl-2-0, ecos-exception-2-0, efl-1-0, efl-2-0, egenix, entessa, epics, 394 // epl-1-0, epl-2-0, erlpl-1-1, etalab-2-0, eu-datagrid, eupl-1-0, eupl-1-1, 395 // eupl-1-2, eurosym, fair, fawkes-runtime-exception, fltk-exception, 396 // font-exception-2-0, frameworx-1-0, freebsd-doc, freeimage, 397 // freertos-exception-2-0, fsfap, fsful, fsfullr, ftl, gcc-exception-2-0, 398 // gcc-exception-3-1, gd, gfdl-1-1-invariants-only, 399 // gfdl-1-1-invariants-or-later, gfdl-1-1-no-invariants-only, 400 // gfdl-1-1-no-invariants-or-later, gfdl-1-1-only, gfdl-1-1-or-later, 401 // gfdl-1-2-invariants-only, gfdl-1-2-invariants-or-later, 402 // gfdl-1-2-no-invariants-only, gfdl-1-2-no-invariants-or-later, 403 // gfdl-1-2-only, gfdl-1-2-or-later, gfdl-1-3-invariants-only, 404 // gfdl-1-3-invariants-or-later, gfdl-1-3-no-invariants-only, 405 // gfdl-1-3-no-invariants-or-later, gfdl-1-3-only, gfdl-1-3-or-later, 406 // giftware, gl2ps, glide, glulxe, glwtpl, gnu-javamail-exception, gnuplot, 407 // gpl-1-0-only, gpl-1-0-or-later, gpl-2-0-only, gpl-2-0-or-later, 408 // gpl-3-0-linking-exception, gpl-3-0-linking-source-exception, 409 // gpl-3-0-only, gpl-3-0-or-later, gpl-cc-1-0, gsoap-1-3b, haskell-report, 410 // hippocratic-2-1, hpnd, hpnd-sell-variant, htmltidy, 411 // i2p-gpl-java-exception, ibm-pibs, icu, ijg, image-magick, imatix, imlib2, 412 // info-zip, intel, intel-acpi, interbase-1-0, ipa, ipl-1-0, isc, 413 // jasper-2-0, jpnic, json, lal-1-2, lal-1-3, latex2e, leptonica, 414 // lgpl-2-0-only, lgpl-2-0-or-later, lgpl-2-1-only, lgpl-2-1-or-later, 415 // lgpl-3-0-linking-exception, lgpl-3-0-only, lgpl-3-0-or-later, lgpllr, 416 // libpng, libpng-2-0, libselinux-1-0, libtiff, libtool-exception, 417 // liliq-p-1-1, liliq-r-1-1, liliq-rplus-1-1, linux-openib, 418 // linux-syscall-note, llvm-exception, lpl-1-0, lpl-1-02, lppl-1-0, 419 // lppl-1-1, lppl-1-2, lppl-1-3a, lppl-1-3c, lzma-exception, make-index, 420 // mif-exception, miros, mit, mit-0, mit-advertising, mit-cmu, mit-enna, 421 // mit-feh, mit-modern-variant, mitnfa, mit-open-group, motosoto, mpich2, 422 // mpl-1-0, mpl-1-1, mpl-2-0, mpl-2-0-no-copyleft-exception, ms-pl, ms-rl, 423 // mtll, mulanpsl-1-0, mulanpsl-2-0, multics, mup, naist-2003, nasa-1-3, 424 // naumen, nbpl-1-0, ncgl-uk-2-0, ncsa, netcdf, net-snmp, newsletr, ngpl, 425 // nist-pd, nist-pd-fallback, nlod-1-0, nlpl, nokia, nokia-qt-exception-1-1, 426 // nosl, noweb, npl-1-0, npl-1-1, nposl-3-0, nrl, ntp, ntp-0, 427 // ocaml-lgpl-linking-exception, occt-exception-1-0, occt-pl, oclc-2-0, 428 // odbl-1-0, odc-by-1-0, ofl-1-0, ofl-1-0-no-rfn, ofl-1-0-rfn, ofl-1-1, 429 // ofl-1-1-no-rfn, ofl-1-1-rfn, ogc-1-0, ogdl-taiwan-1-0, ogl-canada-2-0, 430 // ogl-uk-1-0, ogl-uk-2-0, ogl-uk-3-0, ogtsl, oldap-1-1, oldap-1-2, 431 // oldap-1-3, oldap-1-4, oldap-2-0, oldap-2-0-1, oldap-2-1, oldap-2-2, 432 // oldap-2-2-1, oldap-2-2-2, oldap-2-3, oldap-2-4, oldap-2-7, oml, 433 // openjdk-assembly-exception-1-0, openssl, openvpn-openssl-exception, 434 // opl-1-0, oset-pl-2-1, osl-1-0, osl-1-1, osl-2-0, osl-2-1, osl-3-0, 435 // o-uda-1-0, parity-6-0-0, parity-7-0-0, pddl-1-0, php-3-0, php-3-01, 436 // plexus, polyform-noncommercial-1-0-0, polyform-small-business-1-0-0, 437 // postgresql, psf-2-0, psfrag, ps-or-pdf-font-exception-20170817, psutils, 438 // python-2-0, qhull, qpl-1-0, qt-gpl-exception-1-0, qt-lgpl-exception-1-1, 439 // qwt-exception-1-0, rdisc, rhecos-1-1, rpl-1-1, rpsl-1-0, rsa-md, rscpl, 440 // ruby, saxpath, sax-pd, scea, sendmail, sendmail-8-23, sgi-b-1-0, 441 // sgi-b-1-1, sgi-b-2-0, shl-0-51, shl-2-0, shl-2-1, simpl-2-0, sissl, 442 // sissl-1-2, sleepycat, smlnj, smppl, snia, spencer-86, spencer-94, 443 // spencer-99, spl-1-0, ssh-openssh, ssh-short, sspl-1-0, sugarcrm-1-1-3, 444 // swift-exception, swl, tapr-ohl-1-0, tcl, tcp-wrappers, tmate, torque-1-1, 445 // tosl, tu-berlin-1-0, tu-berlin-2-0, u-boot-exception-2-0, ucl-1-0, 446 // unicode-dfs-2015, unicode-dfs-2016, unicode-tou, 447 // universal-foss-exception-1-0, unlicense, upl-1-0, vim, vostrom, vsl-1-0, 448 // w3c, w3c-19980720, w3c-20150513, watcom-1-0, wsuipa, wtfpl, 449 // wxwindows-exception-3-1, x11, xerox, xfree86-1-1, xinetd, xnet, xpp, 450 // xskat, ypl-1-0, ypl-1-1, zed, zend-2-0, zimbra-1-3, zimbra-1-4, zlib, 451 // zlib-acknowledgement, zpl-1-1, zpl-2-0, zpl-2-1. 452 string license = 3; 453 454 // README template name. 455 // Valid template name(s) are: default. 456 string readme = 4; 457 } 458 459 // Optional. A unique identifier for a repository. The name should be of the 460 // format: 461 // `projects/{project}/locations/{location_id}/repositories/{repository_id}` 462 string name = 1 [(google.api.field_behavior) = OPTIONAL]; 463 464 // Optional. Description of the repository, which cannot exceed 500 465 // characters. 466 string description = 2 [(google.api.field_behavior) = OPTIONAL]; 467 468 // Output only. The name of the instance in which the repository is hosted, 469 // formatted as 470 // `projects/{project_number}/locations/{location_id}/instances/{instance_id}` 471 string instance = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 472 473 // Output only. Unique identifier of the repository. 474 string uid = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; 475 476 // Output only. Create timestamp. 477 google.protobuf.Timestamp create_time = 5 478 [(google.api.field_behavior) = OUTPUT_ONLY]; 479 480 // Output only. Update timestamp. 481 google.protobuf.Timestamp update_time = 6 482 [(google.api.field_behavior) = OUTPUT_ONLY]; 483 484 // Optional. This checksum is computed by the server based on the value of 485 // other fields, and may be sent on update and delete requests to ensure the 486 // client has an up-to-date value before proceeding. 487 string etag = 8 [(google.api.field_behavior) = OPTIONAL]; 488 489 // Output only. URIs for the repository. 490 URIs uris = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; 491 492 // Input only. Initial configurations for the repository. 493 InitialConfig initial_config = 10 [(google.api.field_behavior) = INPUT_ONLY]; 494} 495 496// ListInstancesRequest is the request to list instances. 497message ListInstancesRequest { 498 // Required. Parent value for ListInstancesRequest. 499 string parent = 1 [ 500 (google.api.field_behavior) = REQUIRED, 501 (google.api.resource_reference) = { 502 child_type: "securesourcemanager.googleapis.com/Instance" 503 } 504 ]; 505 506 // Requested page size. Server may return fewer items than requested. 507 // If unspecified, server will pick an appropriate default. 508 int32 page_size = 2; 509 510 // A token identifying a page of results the server should return. 511 string page_token = 3; 512 513 // Filter for filtering results. 514 string filter = 4; 515 516 // Hint for how to order the results. 517 string order_by = 5; 518} 519 520message ListInstancesResponse { 521 // The list of instances. 522 repeated Instance instances = 1; 523 524 // A token identifying a page of results the server should return. 525 string next_page_token = 2; 526 527 // Locations that could not be reached. 528 repeated string unreachable = 3; 529} 530 531// GetInstanceRequest is the request for getting an instance. 532message GetInstanceRequest { 533 // Required. Name of the resource. 534 string name = 1 [ 535 (google.api.field_behavior) = REQUIRED, 536 (google.api.resource_reference) = { 537 type: "securesourcemanager.googleapis.com/Instance" 538 } 539 ]; 540} 541 542// CreateInstanceRequest is the request for creating an instance. 543message CreateInstanceRequest { 544 // Required. Value for parent. 545 string parent = 1 [ 546 (google.api.field_behavior) = REQUIRED, 547 (google.api.resource_reference) = { 548 child_type: "securesourcemanager.googleapis.com/Instance" 549 } 550 ]; 551 552 // Required. ID of the instance to be created. 553 string instance_id = 2 [(google.api.field_behavior) = REQUIRED]; 554 555 // Required. The resource being created. 556 Instance instance = 3 [(google.api.field_behavior) = REQUIRED]; 557 558 // Optional. An optional request ID to identify requests. Specify a unique 559 // request ID so that if you must retry your request, the server will know to 560 // ignore the request if it has already been completed. The server will 561 // guarantee that for at least 60 minutes since the first request. 562 // 563 // For example, consider a situation where you make an initial request and 564 // the request times out. If you make the request again with the same request 565 // ID, the server can check if original operation with the same request ID 566 // was received, and if so, will ignore the second request. This prevents 567 // clients from accidentally creating duplicate commitments. 568 // 569 // The request ID must be a valid UUID with the exception that zero UUID is 570 // not supported (00000000-0000-0000-0000-000000000000). 571 string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; 572} 573 574// DeleteInstanceRequest is the request for deleting an instance. 575message DeleteInstanceRequest { 576 // Required. Name of the resource. 577 string name = 1 [ 578 (google.api.field_behavior) = REQUIRED, 579 (google.api.resource_reference) = { 580 type: "securesourcemanager.googleapis.com/Instance" 581 } 582 ]; 583 584 // Optional. An optional request ID to identify requests. Specify a unique 585 // request ID so that if you must retry your request, the server will know to 586 // ignore the request if it has already been completed. The server will 587 // guarantee that for at least 60 minutes after the first request. 588 // 589 // For example, consider a situation where you make an initial request and 590 // the request times out. If you make the request again with the same request 591 // ID, the server can check if original operation with the same request ID 592 // was received, and if so, will ignore the second request. This prevents 593 // clients from accidentally creating duplicate commitments. 594 // 595 // The request ID must be a valid UUID with the exception that zero UUID is 596 // not supported (00000000-0000-0000-0000-000000000000). 597 string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; 598} 599 600// Represents the metadata of the long-running operation. 601message OperationMetadata { 602 // Output only. The time the operation was created. 603 google.protobuf.Timestamp create_time = 1 604 [(google.api.field_behavior) = OUTPUT_ONLY]; 605 606 // Output only. The time the operation finished running. 607 google.protobuf.Timestamp end_time = 2 608 [(google.api.field_behavior) = OUTPUT_ONLY]; 609 610 // Output only. Server-defined resource path for the target of the operation. 611 string target = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 612 613 // Output only. Name of the verb executed by the operation. 614 string verb = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; 615 616 // Output only. Human-readable status of the operation, if any. 617 string status_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; 618 619 // Output only. Identifies whether the user has requested cancellation 620 // of the operation. Operations that have successfully been cancelled 621 // have [Operation.error][] value with a 622 // [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to 623 // `Code.CANCELLED`. 624 bool requested_cancellation = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; 625 626 // Output only. API version used to start the operation. 627 string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; 628} 629 630// ListRepositoriesRequest is request to list repositories. 631message ListRepositoriesRequest { 632 // Required. Parent value for ListRepositoriesRequest. 633 string parent = 1 [ 634 (google.api.field_behavior) = REQUIRED, 635 (google.api.resource_reference) = { 636 child_type: "securesourcemanager.googleapis.com/Repository" 637 } 638 ]; 639 640 // Optional. Requested page size. Server may return fewer items than 641 // requested. If unspecified, server will pick an appropriate default. 642 int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; 643 644 // A token identifying a page of results the server should return. 645 string page_token = 3; 646 647 // Optional. Filter results. 648 string filter = 4 [(google.api.field_behavior) = OPTIONAL]; 649} 650 651message ListRepositoriesResponse { 652 // The list of repositories. 653 repeated Repository repositories = 1; 654 655 // A token identifying a page of results the server should return. 656 string next_page_token = 2; 657} 658 659// GetRepositoryRequest is the request for getting a repository. 660message GetRepositoryRequest { 661 // Required. Name of the repository to retrieve. 662 // The format is 663 // `projects/{project_number}/locations/{location_id}/repositories/{repository_id}`. 664 string name = 1 [ 665 (google.api.field_behavior) = REQUIRED, 666 (google.api.resource_reference) = { 667 type: "securesourcemanager.googleapis.com/Repository" 668 } 669 ]; 670} 671 672// CreateRepositoryRequest is the request for creating a repository. 673message CreateRepositoryRequest { 674 // Required. The project in which to create the repository. Values are of the 675 // form `projects/{project_number}/locations/{location_id}` 676 string parent = 1 [ 677 (google.api.field_behavior) = REQUIRED, 678 (google.api.resource_reference) = { 679 child_type: "securesourcemanager.googleapis.com/Repository" 680 } 681 ]; 682 683 // Required. The resource being created. 684 Repository repository = 2 [(google.api.field_behavior) = REQUIRED]; 685 686 // Required. The ID to use for the repository, which will become the final 687 // component of the repository's resource name. This value should be 4-63 688 // characters, and valid characters are /[a-z][0-9]-/. 689 string repository_id = 3 [(google.api.field_behavior) = REQUIRED]; 690} 691 692// DeleteRepositoryRequest is the request to delete a repository. 693message DeleteRepositoryRequest { 694 // Required. Name of the repository to delete. 695 // The format is 696 // projects/{project_number}/locations/{location_id}/repositories/{repository_id}. 697 string name = 1 [ 698 (google.api.field_behavior) = REQUIRED, 699 (google.api.resource_reference) = { 700 type: "securesourcemanager.googleapis.com/Repository" 701 } 702 ]; 703 704 // Optional. If set to true, and the repository is not found, the request will 705 // succeed but no action will be taken on the server. 706 bool allow_missing = 2 [(google.api.field_behavior) = OPTIONAL]; 707} 708