github.com/cloudwan/edgelq-sdk@v1.15.4/limits/proto/v1alpha2/limit_pool.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/meta/proto/v1alpha2/service.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/limit_pool;limit_pool"; 12 option java_multiple_files = true; 13 option java_outer_classname = "LimitPoolProto"; 14 option java_package = "com.ntt.limits.pb.v1alpha2"; 15 16 // LimitPool represents a pool from which next LimitPool 17 // or final Limit instances are allocated from. LimitPool 18 // can either belong to a system (first pool, without parent) or 19 // organization (which got pool from system or parent organization). 20 // Size of child limit or limit pools must not exceed parent 21 // limit pool. 22 // LimitPool is in a way similar to Limit - it has scope and 23 // associated resource but: 24 // * LimitPool is non-final object. It cannot be used to 25 // allocate resources directly. It need child Limit first. So 26 // field with values in LimitPool are configured size, active 27 // size and reserved. Fields in Limit are configured limit, 28 // active limit and usage - they need different interpretation. 29 // * LimitPool is not regional, because it may feed limits in 30 // other regions. Limit has extra tracker in their final region 31 // for state synchronization purpose. 32 // Because LimitPool instances within one scope (system, organization) 33 // are managed by primary region of that scope, changes in them 34 // are done with only single transaction. 35 // LimitPool instances cannot be created or deleted. They cannot be 36 // also be modified (there are only some state fields controlled 37 // by system). LimitPools are created/modified along with 38 // PlanAssignment instances. 39 message LimitPool { 40 option (google.api.resource) = { 41 type : "limits.edgelq.com/LimitPool" 42 pattern : "limitPools/{limit_pool}" 43 pattern : "organizations/{organization}/limitPools/{limit_pool}" 44 }; 45 46 // Name of LimitPool 47 string name = 1; 48 49 // Referenced service 50 string service = 2; 51 52 // Referenced resource type 53 string resource = 3; 54 55 // Configured size of pool according to PlanAssignment instances 56 // belonging to same scope (system or organization). 57 int64 configured_size = 4; 58 59 // Active pool size. It will be normally equal to configured size. 60 // However, if configured size goes down below reserved value, 61 // then active size will be equal to that "reserved". 62 // It will also prevent parent LimitPool (if any) from getting 63 // limit value back. 64 int64 active_size = 5; 65 66 // Configured OR Active Size of all child Limit and LimitPool instances - 67 // whichever is bigger. 68 int64 reserved = 6; 69 70 // LimitPool source that gave birth to this LimitPool. Any change 71 // in configured/active value in current LimitPool increases/decreases 72 // reserved field in source LimitPool. 73 string source = 7; 74 75 // Metadata 76 goten.types.Meta metadata = 8; 77 }