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 }