github.com/cloudwan/edgelq-sdk@v1.15.4/iam/proto/v1/invitation.proto (about)

     1  syntax = "proto3";
     2  
     3  package ntt.iam.v1;
     4  
     5  import "edgelq-sdk/iam/proto/v1/condition.proto";
     6  import "edgelq-sdk/iam/proto/v1/role.proto";
     7  import "edgelq-sdk/iam/proto/v1/role_binding.proto";
     8  import "edgelq-sdk/iam/proto/v1/service_account.proto";
     9  import "edgelq-sdk/iam/proto/v1/user.proto";
    10  import "google/api/field_behavior.proto";
    11  import "google/api/resource.proto";
    12  import "google/protobuf/struct.proto";
    13  import "google/protobuf/timestamp.proto";
    14  
    15  option go_package = "github.com/cloudwan/edgelq-sdk/iam/resources/v1/invitation;iam_invitation";
    16  option java_multiple_files = true;
    17  option java_package = "com.ntt.iam.pb.v1";
    18  
    19  // Actor is a party performing an action
    20  message Actor {
    21    string user = 1;
    22  
    23    string service_account = 2;
    24  }
    25  
    26  // Common invitation body. It's used in Project/Organization Invitations
    27  message Invitation {
    28    // Invitee Email address
    29    string invitee_email = 3;
    30  
    31    // Inviter User
    32    Actor inviter_actor = 6;
    33  
    34    // Denormalized data - TODO: remove it
    35    string inviter_full_name = 5;
    36  
    37    // Inviter Email
    38    string inviter_email = 10;
    39  
    40    // Invitation ISO language code. Defaults to "en-us" (American English).
    41    string language_code = 11;
    42  
    43    // List of role bindings for this invitation. They are used for creation
    44    // of proper RoleBinding resources.
    45    repeated BindingRole binding_roles = 13;
    46  
    47    // List of groups where invitee should join after accepting invitation
    48    repeated string groups = 14;
    49  
    50    // Expiration date
    51    google.protobuf.Timestamp expiration_date = 8;
    52  
    53    // Extra custom fields to further customize invitation experience.
    54    // Fields should be agreed between sender (usually UI) and documented in
    55    // the template of email service provider.
    56    map<string, string> extras = 12;
    57  
    58    // Status of Invitation
    59    State state = 9 [ (google.api.field_behavior) = OUTPUT_ONLY ];
    60  
    61    // BindingRole is used to create RoleBinding when invitation is accepted.
    62    message BindingRole {
    63      // Role to be granted
    64      string role = 1 [ (google.api.resource_reference) = {type : "Role"} ];
    65  
    66      // List of all applicable condition bindings to be applied when creating
    67      // RoleBinding.
    68      repeated ExecutableCondition executable_conditions = 2;
    69  
    70      // List of applicable scope params to be applied when creating RoleBinding.
    71      repeated ScopeParam scope_params = 3;
    72    }
    73  
    74    // Invitation FSM States
    75    enum State {
    76      STATE_UNSPECIFIED = 0;
    77  
    78      PENDING = 1;
    79  
    80      ACCEPTED = 2;
    81  
    82      DECLINED = 3;
    83  
    84      EXPIRED = 4;
    85    }
    86  
    87    reserved 7;
    88  }