github.com/cloudwan/edgelq-sdk@v1.15.4/limits/proto/v1/accepted_plan.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 "google/api/resource.proto"; 9 import "goten-sdk/types/meta.proto"; 10 11 option go_package = "github.com/cloudwan/edgelq-sdk/limits/resources/v1/accepted_plan;accepted_plan"; 12 option java_multiple_files = true; 13 option java_outer_classname = "AcceptedPlanProto"; 14 option java_package = "com.ntt.limits.pb.v1"; 15 16 // AcceptedPlan shows a plan accepted by assigner (system or organization) 17 // for project, organization and system - with all additional information 18 // like extensions or regional distributions. 19 // It is in relation 1-1 with PlanAssignment, BUT: 20 // * PlanAssignment is read-only and represents information for Assignee. 21 // Name pattern indicates to WHOM plan is assigned. 22 // * AcceptedPlan contains accepted configuration and represents information 23 // for assigner. Name pattern indicates WHO ASSIGNED a plan. It is modifiable, 24 // BUT modifications of accepted plans may result in increased usage of 25 // allowed limit pools - Organization/Service cannot accept plans to 26 // sub-entities without limits (however, system is allowed to assign plan to 27 // itself without limits, which makes system admin fully responsible). 28 message AcceptedPlan { 29 option (google.api.resource) = { 30 type : "limits.edgelq.com/AcceptedPlan" 31 pattern : "services/{service}/acceptedPlans/{accepted_plan}" 32 pattern : "organizations/{organization}/acceptedPlans/{accepted_plan}" 33 }; 34 35 // Name of AcceptedPlan 36 // When creating a new instance, this field is optional and if not provided, 37 // it will be generated automatically. Last ID segment must conform to the 38 // following regex: [a-zA-Z0-9_.-]{1,128} 39 string name = 1; 40 41 // Metadata is an object with information like create, update and delete time 42 // (for async deleted resources), has user labels/annotations, sharding 43 // information, multi-region syncing information and may have non-schema 44 // owners (useful for taking ownership of resources belonging to lower level 45 // services by higher ones). 46 goten.types.Meta metadata = 7; 47 48 // Plan with resource limits - it will apply to EACH region of 49 // service/organization/project. 50 string default_regional_plan = 2; 51 52 // Service indicated by a plan. 53 string service = 3; 54 55 // Individual plan overrides per each region - however, overrides do not work 56 // on non-regional resources for project assignees. 57 repeated RegionalPlanAssignment regional_plan_overrides = 8; 58 59 // Optional extensions over standard plans in individual regions or all 60 // regions, if region id is empty. 61 repeated Allowance extensions = 4; 62 63 // Final allowances per resource/region - computed from extensions and 64 // all regional plans. 65 repeated Allowance allowances = 5; 66 67 // List of regions ID where plan was applied - it is being taken from 68 // service/organization/project list of regions. Limits service extends plans 69 // if it notices expansion to the new region. 70 repeated string applied_regions = 9; 71 72 // Default region plan generation number, set during each update and creation. 73 // It is used to notice if plan got changed and we need to trigger accepted 74 // plan update. 75 int64 applied_plan_spec_generation = 10; 76 77 // Plan assignee 78 Assignee assignee = 6; 79 80 // Assignee indicates for whom plan was accepted for. 81 // In case of child project/org deletion, accepted plan will be deleted too, 82 // which will result in return of all limits. 83 message Assignee { 84 oneof assignee { 85 // Project for whom plan is for. 86 string project_assignee = 1; 87 88 // Organization for whom plan is for. 89 string organization_assignee = 2; 90 91 // Service for whom plan is for 92 string service_assignee = 3; 93 } 94 } 95 }