// Copyright (C) 2023 The Licensing Authors // SPDX-License-Identifier: MIT // // This file attempts to follow common styles and design patterns described by // Google Cloud based on their extensive use of protocol buffers. // // - See here for more: https://cloud.google.com/apis/design/design_patterns // syntax = "proto3"; package licenses.v1; import "google/api/annotations.proto"; message License { string id = 1; string product_id = 2; string package_name = 3; } message ListRequest {} message ListResponse { repeated License licenses = 1; } message PurchaseRequest { License license = 1; } message PurchaseResponse {} message CancelRequest { string license_id = 1; } message CancelResponse {} service LicenseService { rpc List(ListRequest) returns (ListResponse) { option (google.api.http) = { get: "/v1/licenses" }; }; rpc Purchase(PurchaseRequest) returns (PurchaseResponse) { option (google.api.http) = { post: "/v1/licenses" body: "*" }; }; rpc Cancel(CancelRequest) returns (CancelResponse) { option (google.api.http) = { delete: "/v1/licenses/{license_id}" }; }; }