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  }