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  }