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  }