github.com/cloudwan/edgelq-sdk@v1.15.4/limits/proto/v1/plan_assignment.proto (about) 1 syntax = "proto3"; 2 3 package ntt.limits.v1; 4 5 import "edgelq-sdk/iam/proto/v1/organization.proto"; 6 import "edgelq-sdk/iam/proto/v1/project.proto"; 7 import "edgelq-sdk/limits/proto/v1/common.proto"; 8 import "edgelq-sdk/limits/proto/v1/plan.proto"; 9 import "google/api/resource.proto"; 10 import "goten-sdk/meta-service/proto/v1/service.proto"; 11 import "goten-sdk/types/meta.proto"; 12 13 option go_package = "github.com/cloudwan/edgelq-sdk/limits/resources/v1/plan_assignment;plan_assignment"; 14 option java_multiple_files = true; 15 option java_outer_classname = "PlanAssignmentProto"; 16 option java_package = "com.ntt.limits.pb.v1"; 17 18 // PlanAssignment binds plan (with optional customizations) with specific 19 // entity (assignee - either system, organization or project). 20 // Plan assignments (sum of them) are used to compute configured size of 21 // limit pools (system and organizations) AND limits (projects). 22 // They are not modifiable - limits are passed from system to projects, 23 // so each PlanAssignment must be agreed by higher instance (parent organization 24 // or system). System recognizes acceptance by existence of AcceptedPlan 25 // instances - it synchronizes PlanAssignment instances with them. 26 message PlanAssignment { 27 option (google.api.resource) = { 28 type : "limits.edgelq.com/PlanAssignment" 29 pattern : "services/{service}/planAssignments/{plan_assignment}" 30 pattern : "projects/{project}/planAssignments/{plan_assignment}" 31 pattern : "organizations/{organization}/planAssignments/{plan_assignment}" 32 }; 33 34 // Name of PlanAssignment 35 // When creating a new instance, this field is optional and if not provided, 36 // it will be generated automatically. Last ID segment must conform to the 37 // following regex: [a-zA-Z0-9_.-]{1,128} 38 string name = 1; 39 40 // Metadata is an object with information like create, update and delete time 41 // (for async deleted resources), has user labels/annotations, sharding 42 // information, multi-region syncing information and may have non-schema 43 // owners (useful for taking ownership of resources belonging to lower level 44 // services by higher ones). 45 goten.types.Meta metadata = 7; 46 47 // Plan with basic set of limits - it will apply to EACH region of 48 // service/organization/project 49 string default_regional_plan = 2; 50 51 // Service associated with plan 52 string service = 3; 53 54 // Individual plan overrides per each region. 55 repeated RegionalPlanAssignment regional_plan_overrides = 8; 56 57 // Additional extensions (but may be negative) on top of regular plan. 58 repeated Allowance extensions = 4; 59 60 // Final allowances per resource/region - computed from extensions and 61 // all regional plans. 62 repeated Allowance allowances = 5; 63 64 // List of regions ID where plan was applied - it is being taken from 65 // service/organization/project list of regions. Limits service extends plans 66 // if it notices expansion to the new region. 67 repeated string applied_regions = 9; 68 69 // Default region plan generation number, set during each update and creation. 70 // It is used to notice if plan got changed and we need to trigger plan 71 // update. 72 int64 applied_plan_spec_generation = 10; 73 74 // Source with which this PlanAssignment is synchronized. 75 string source = 6; 76 }