github.com/cloudwan/edgelq-sdk@v1.15.4/limits/proto/v1alpha2/accepted_plan.proto (about) 1 syntax = "proto3"; 2 3 package ntt.limits.v1alpha2; 4 5 import "edgelq-sdk/iam/proto/v1alpha2/organization.proto"; 6 import "edgelq-sdk/iam/proto/v1alpha2/project.proto"; 7 import "edgelq-sdk/limits/proto/v1alpha2/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/v1alpha2/accepted_plan;accepted_plan"; 12 option java_multiple_files = true; 13 option java_outer_classname = "AcceptedPlanProto"; 14 option java_package = "com.ntt.limits.pb.v1alpha2"; 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/System cannot accept plans to sub-entities 26 // without limits (however, system is allowed to assign plan to itself without 27 // limits, which makes system admin fully responsible). 28 message AcceptedPlan { 29 option (google.api.resource) = { 30 type : "limits.edgelq.com/AcceptedPlan" 31 pattern : "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 // Plan with resource limits 42 string plan = 2; 43 44 // Service indicates by plan. 45 string service = 3; 46 47 // Optional extensions over standard plan 48 repeated Allowance extensions = 4; 49 50 // Distribution of limits by regions. It does not need 51 // to be populated by user in Create/Update requests - 52 // system automatically distributes limits across regions 53 // equally. Returned AcceptedPlan instance from Create/Update 54 // will contain this field populated. 55 // If user wants to have some specific resource distributed in 56 // certain way, they can do it by partially populating this field 57 // too. System will distribute automatically only remaining numbers. 58 repeated RegionalDistribution regional_distributions = 5; 59 60 // Plan assignee 61 Assignee assignee = 6; 62 63 // Metadata 64 goten.types.Meta metadata = 7; 65 66 // Assignee indicates for whom plan was accepted for. 67 // In case of child project/org deletion, accepted plan will be deleted too, 68 // which will result in return of all limits. 69 message Assignee { 70 oneof assignee { 71 // Project for whom plan is for. 72 string project_assignee = 1; 73 74 // Organization for whom plan is for. 75 string organization_assignee = 2; 76 77 // If true, it means plan is for system itself. 78 bool system_assignee = 3; 79 } 80 } 81 }