Class: Google::Apps::Chat::V1::Membership

Inherits:
Object
  • Object
show all
Extended by:
Protobuf::MessageExts::ClassMethods
Includes:
Protobuf::MessageExts
Defined in:
proto_docs/google/chat/v1/membership.rb

Overview

Represents a membership relation in Google Chat, such as whether a user or Chat app is invited to, part of, or absent from a space.

Defined Under Namespace

Modules: MembershipRole, MembershipState

Instance Attribute Summary collapse

Instance Attribute Details

#create_time::Google::Protobuf::Timestamp

Returns Optional. Immutable. The creation time of the membership, such as when a member joined or was invited to join a space. This field is output only, except when used to import historical memberships in import mode spaces.

Returns:

  • (::Google::Protobuf::Timestamp)

    Optional. Immutable. The creation time of the membership, such as when a member joined or was invited to join a space. This field is output only, except when used to import historical memberships in import mode spaces.



68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
# File 'proto_docs/google/chat/v1/membership.rb', line 68

class Membership
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Specifies the member's relationship with a space. Other membership states
  # might be supported in the future.
  module MembershipState
    # Default value. Don't use.
    MEMBERSHIP_STATE_UNSPECIFIED = 0

    # The user is added to the space, and can participate in the space.
    JOINED = 1

    # The user is invited to join the space, but hasn't joined it.
    INVITED = 2

    # The user doesn't belong to the space and doesn't have a pending
    # invitation to join the space.
    NOT_A_MEMBER = 3
  end

  # Represents a user's permitted actions in a Chat space. More enum values
  # might be added in the future.
  module MembershipRole
    # Default value. For {::Google::Apps::Chat::V1::Membership#member users}: they
    # aren't a member of the space, but can be invited. For
    # {::Google::Apps::Chat::V1::Membership#group_member Google Groups}: they're always
    #  assigned this role (other enum values might be used in the future).
    MEMBERSHIP_ROLE_UNSPECIFIED = 0

    # A member of the space. In the Chat UI, this role is called Member.
    #
    # The user has basic permissions, like sending
    # messages to the space.
    # Managers and owners can grant members additional permissions in a space,
    # including:
    #
    # - Add or remove members.
    # - Modify space details.
    # - Turn history on or off.
    # - Mention everyone in the space with `@all`.
    # - Manage Chat apps and webhooks installed in the space.
    #
    # In direct messages and unnamed group conversations, everyone
    # has this role.
    ROLE_MEMBER = 1

    # A space owner. In the Chat UI, this role is called Owner.
    #
    # The user has the complete set of space permissions to manage the space,
    # including:
    #
    # - Change the role of other members in the space to member, manager, or
    # owner.
    # - Delete the space.
    #
    # Only supported in
    # {::Google::Apps::Chat::V1::Space::SpaceType SpaceType.SPACE} (named spaces).
    #
    # To learn more, see
    # [Learn more about your role as a space
    # owner or manager](https://support.google.com/chat/answer/11833441).
    ROLE_MANAGER = 2

    # A space manager. In the Chat UI, this role is called Manager.
    #
    # The user has all basic permissions of `ROLE_MEMBER`,
    # and can be granted a subset of administrative permissions by an owner.
    # By default, managers have all the permissions of an owner except for the
    # ability to:
    #
    # - Delete the space.
    # - Make another space member an owner.
    # - Change an owner's role.
    #
    # By default, managers permissions include but aren't limited to:
    #
    # - Make another member a manager.
    # - Delete messages in the space.
    # - Manage space permissions.
    # - Receive notifications for requests to join the space if the manager
    #   has the "manage members" permission in the space settings.
    # - Make a space discoverable.
    #
    # Only supported in
    # {::Google::Apps::Chat::V1::Space::SpaceType SpaceType.SPACE} (named spaces).
    #
    # To learn more, see
    # [Manage space settings](https://support.google.com/chat/answer/13340792).
    ROLE_ASSISTANT_MANAGER = 4
  end
end

#delete_time::Google::Protobuf::Timestamp

Returns Optional. Immutable. The deletion time of the membership, such as when a member left or was removed from a space. This field is output only, except when used to import historical memberships in import mode spaces.

Returns:

  • (::Google::Protobuf::Timestamp)

    Optional. Immutable. The deletion time of the membership, such as when a member left or was removed from a space. This field is output only, except when used to import historical memberships in import mode spaces.



68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
# File 'proto_docs/google/chat/v1/membership.rb', line 68

class Membership
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Specifies the member's relationship with a space. Other membership states
  # might be supported in the future.
  module MembershipState
    # Default value. Don't use.
    MEMBERSHIP_STATE_UNSPECIFIED = 0

    # The user is added to the space, and can participate in the space.
    JOINED = 1

    # The user is invited to join the space, but hasn't joined it.
    INVITED = 2

    # The user doesn't belong to the space and doesn't have a pending
    # invitation to join the space.
    NOT_A_MEMBER = 3
  end

  # Represents a user's permitted actions in a Chat space. More enum values
  # might be added in the future.
  module MembershipRole
    # Default value. For {::Google::Apps::Chat::V1::Membership#member users}: they
    # aren't a member of the space, but can be invited. For
    # {::Google::Apps::Chat::V1::Membership#group_member Google Groups}: they're always
    #  assigned this role (other enum values might be used in the future).
    MEMBERSHIP_ROLE_UNSPECIFIED = 0

    # A member of the space. In the Chat UI, this role is called Member.
    #
    # The user has basic permissions, like sending
    # messages to the space.
    # Managers and owners can grant members additional permissions in a space,
    # including:
    #
    # - Add or remove members.
    # - Modify space details.
    # - Turn history on or off.
    # - Mention everyone in the space with `@all`.
    # - Manage Chat apps and webhooks installed in the space.
    #
    # In direct messages and unnamed group conversations, everyone
    # has this role.
    ROLE_MEMBER = 1

    # A space owner. In the Chat UI, this role is called Owner.
    #
    # The user has the complete set of space permissions to manage the space,
    # including:
    #
    # - Change the role of other members in the space to member, manager, or
    # owner.
    # - Delete the space.
    #
    # Only supported in
    # {::Google::Apps::Chat::V1::Space::SpaceType SpaceType.SPACE} (named spaces).
    #
    # To learn more, see
    # [Learn more about your role as a space
    # owner or manager](https://support.google.com/chat/answer/11833441).
    ROLE_MANAGER = 2

    # A space manager. In the Chat UI, this role is called Manager.
    #
    # The user has all basic permissions of `ROLE_MEMBER`,
    # and can be granted a subset of administrative permissions by an owner.
    # By default, managers have all the permissions of an owner except for the
    # ability to:
    #
    # - Delete the space.
    # - Make another space member an owner.
    # - Change an owner's role.
    #
    # By default, managers permissions include but aren't limited to:
    #
    # - Make another member a manager.
    # - Delete messages in the space.
    # - Manage space permissions.
    # - Receive notifications for requests to join the space if the manager
    #   has the "manage members" permission in the space settings.
    # - Make a space discoverable.
    #
    # Only supported in
    # {::Google::Apps::Chat::V1::Space::SpaceType SpaceType.SPACE} (named spaces).
    #
    # To learn more, see
    # [Manage space settings](https://support.google.com/chat/answer/13340792).
    ROLE_ASSISTANT_MANAGER = 4
  end
end

#group_member::Google::Apps::Chat::V1::Group

Returns Optional. The Google Group the membership corresponds to.

Reading or mutating memberships for Google Groups requires user authentication.

Note: The following fields are mutually exclusive: group_member, member. If a field in that set is populated, all other fields in the set will automatically be cleared.

Returns:

  • (::Google::Apps::Chat::V1::Group)

    Optional. The Google Group the membership corresponds to.

    Reading or mutating memberships for Google Groups requires user authentication.

    Note: The following fields are mutually exclusive: group_member, member. If a field in that set is populated, all other fields in the set will automatically be cleared.



68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
# File 'proto_docs/google/chat/v1/membership.rb', line 68

class Membership
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Specifies the member's relationship with a space. Other membership states
  # might be supported in the future.
  module MembershipState
    # Default value. Don't use.
    MEMBERSHIP_STATE_UNSPECIFIED = 0

    # The user is added to the space, and can participate in the space.
    JOINED = 1

    # The user is invited to join the space, but hasn't joined it.
    INVITED = 2

    # The user doesn't belong to the space and doesn't have a pending
    # invitation to join the space.
    NOT_A_MEMBER = 3
  end

  # Represents a user's permitted actions in a Chat space. More enum values
  # might be added in the future.
  module MembershipRole
    # Default value. For {::Google::Apps::Chat::V1::Membership#member users}: they
    # aren't a member of the space, but can be invited. For
    # {::Google::Apps::Chat::V1::Membership#group_member Google Groups}: they're always
    #  assigned this role (other enum values might be used in the future).
    MEMBERSHIP_ROLE_UNSPECIFIED = 0

    # A member of the space. In the Chat UI, this role is called Member.
    #
    # The user has basic permissions, like sending
    # messages to the space.
    # Managers and owners can grant members additional permissions in a space,
    # including:
    #
    # - Add or remove members.
    # - Modify space details.
    # - Turn history on or off.
    # - Mention everyone in the space with `@all`.
    # - Manage Chat apps and webhooks installed in the space.
    #
    # In direct messages and unnamed group conversations, everyone
    # has this role.
    ROLE_MEMBER = 1

    # A space owner. In the Chat UI, this role is called Owner.
    #
    # The user has the complete set of space permissions to manage the space,
    # including:
    #
    # - Change the role of other members in the space to member, manager, or
    # owner.
    # - Delete the space.
    #
    # Only supported in
    # {::Google::Apps::Chat::V1::Space::SpaceType SpaceType.SPACE} (named spaces).
    #
    # To learn more, see
    # [Learn more about your role as a space
    # owner or manager](https://support.google.com/chat/answer/11833441).
    ROLE_MANAGER = 2

    # A space manager. In the Chat UI, this role is called Manager.
    #
    # The user has all basic permissions of `ROLE_MEMBER`,
    # and can be granted a subset of administrative permissions by an owner.
    # By default, managers have all the permissions of an owner except for the
    # ability to:
    #
    # - Delete the space.
    # - Make another space member an owner.
    # - Change an owner's role.
    #
    # By default, managers permissions include but aren't limited to:
    #
    # - Make another member a manager.
    # - Delete messages in the space.
    # - Manage space permissions.
    # - Receive notifications for requests to join the space if the manager
    #   has the "manage members" permission in the space settings.
    # - Make a space discoverable.
    #
    # Only supported in
    # {::Google::Apps::Chat::V1::Space::SpaceType SpaceType.SPACE} (named spaces).
    #
    # To learn more, see
    # [Manage space settings](https://support.google.com/chat/answer/13340792).
    ROLE_ASSISTANT_MANAGER = 4
  end
end

#member::Google::Apps::Chat::V1::User

Returns Optional. The Google Chat user or app the membership corresponds to. If your Chat app authenticates as a user, the output populates the user name and type.

Note: The following fields are mutually exclusive: member, group_member. If a field in that set is populated, all other fields in the set will automatically be cleared.

Returns:

  • (::Google::Apps::Chat::V1::User)

    Optional. The Google Chat user or app the membership corresponds to. If your Chat app authenticates as a user, the output populates the user name and type.

    Note: The following fields are mutually exclusive: member, group_member. If a field in that set is populated, all other fields in the set will automatically be cleared.



68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
# File 'proto_docs/google/chat/v1/membership.rb', line 68

class Membership
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Specifies the member's relationship with a space. Other membership states
  # might be supported in the future.
  module MembershipState
    # Default value. Don't use.
    MEMBERSHIP_STATE_UNSPECIFIED = 0

    # The user is added to the space, and can participate in the space.
    JOINED = 1

    # The user is invited to join the space, but hasn't joined it.
    INVITED = 2

    # The user doesn't belong to the space and doesn't have a pending
    # invitation to join the space.
    NOT_A_MEMBER = 3
  end

  # Represents a user's permitted actions in a Chat space. More enum values
  # might be added in the future.
  module MembershipRole
    # Default value. For {::Google::Apps::Chat::V1::Membership#member users}: they
    # aren't a member of the space, but can be invited. For
    # {::Google::Apps::Chat::V1::Membership#group_member Google Groups}: they're always
    #  assigned this role (other enum values might be used in the future).
    MEMBERSHIP_ROLE_UNSPECIFIED = 0

    # A member of the space. In the Chat UI, this role is called Member.
    #
    # The user has basic permissions, like sending
    # messages to the space.
    # Managers and owners can grant members additional permissions in a space,
    # including:
    #
    # - Add or remove members.
    # - Modify space details.
    # - Turn history on or off.
    # - Mention everyone in the space with `@all`.
    # - Manage Chat apps and webhooks installed in the space.
    #
    # In direct messages and unnamed group conversations, everyone
    # has this role.
    ROLE_MEMBER = 1

    # A space owner. In the Chat UI, this role is called Owner.
    #
    # The user has the complete set of space permissions to manage the space,
    # including:
    #
    # - Change the role of other members in the space to member, manager, or
    # owner.
    # - Delete the space.
    #
    # Only supported in
    # {::Google::Apps::Chat::V1::Space::SpaceType SpaceType.SPACE} (named spaces).
    #
    # To learn more, see
    # [Learn more about your role as a space
    # owner or manager](https://support.google.com/chat/answer/11833441).
    ROLE_MANAGER = 2

    # A space manager. In the Chat UI, this role is called Manager.
    #
    # The user has all basic permissions of `ROLE_MEMBER`,
    # and can be granted a subset of administrative permissions by an owner.
    # By default, managers have all the permissions of an owner except for the
    # ability to:
    #
    # - Delete the space.
    # - Make another space member an owner.
    # - Change an owner's role.
    #
    # By default, managers permissions include but aren't limited to:
    #
    # - Make another member a manager.
    # - Delete messages in the space.
    # - Manage space permissions.
    # - Receive notifications for requests to join the space if the manager
    #   has the "manage members" permission in the space settings.
    # - Make a space discoverable.
    #
    # Only supported in
    # {::Google::Apps::Chat::V1::Space::SpaceType SpaceType.SPACE} (named spaces).
    #
    # To learn more, see
    # [Manage space settings](https://support.google.com/chat/answer/13340792).
    ROLE_ASSISTANT_MANAGER = 4
  end
end

#name::String

Returns Identifier. Resource name of the membership, assigned by the server.

Format: spaces/{space}/members/{member}.

Returns:

  • (::String)

    Identifier. Resource name of the membership, assigned by the server.

    Format: spaces/{space}/members/{member}



68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
# File 'proto_docs/google/chat/v1/membership.rb', line 68

class Membership
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Specifies the member's relationship with a space. Other membership states
  # might be supported in the future.
  module MembershipState
    # Default value. Don't use.
    MEMBERSHIP_STATE_UNSPECIFIED = 0

    # The user is added to the space, and can participate in the space.
    JOINED = 1

    # The user is invited to join the space, but hasn't joined it.
    INVITED = 2

    # The user doesn't belong to the space and doesn't have a pending
    # invitation to join the space.
    NOT_A_MEMBER = 3
  end

  # Represents a user's permitted actions in a Chat space. More enum values
  # might be added in the future.
  module MembershipRole
    # Default value. For {::Google::Apps::Chat::V1::Membership#member users}: they
    # aren't a member of the space, but can be invited. For
    # {::Google::Apps::Chat::V1::Membership#group_member Google Groups}: they're always
    #  assigned this role (other enum values might be used in the future).
    MEMBERSHIP_ROLE_UNSPECIFIED = 0

    # A member of the space. In the Chat UI, this role is called Member.
    #
    # The user has basic permissions, like sending
    # messages to the space.
    # Managers and owners can grant members additional permissions in a space,
    # including:
    #
    # - Add or remove members.
    # - Modify space details.
    # - Turn history on or off.
    # - Mention everyone in the space with `@all`.
    # - Manage Chat apps and webhooks installed in the space.
    #
    # In direct messages and unnamed group conversations, everyone
    # has this role.
    ROLE_MEMBER = 1

    # A space owner. In the Chat UI, this role is called Owner.
    #
    # The user has the complete set of space permissions to manage the space,
    # including:
    #
    # - Change the role of other members in the space to member, manager, or
    # owner.
    # - Delete the space.
    #
    # Only supported in
    # {::Google::Apps::Chat::V1::Space::SpaceType SpaceType.SPACE} (named spaces).
    #
    # To learn more, see
    # [Learn more about your role as a space
    # owner or manager](https://support.google.com/chat/answer/11833441).
    ROLE_MANAGER = 2

    # A space manager. In the Chat UI, this role is called Manager.
    #
    # The user has all basic permissions of `ROLE_MEMBER`,
    # and can be granted a subset of administrative permissions by an owner.
    # By default, managers have all the permissions of an owner except for the
    # ability to:
    #
    # - Delete the space.
    # - Make another space member an owner.
    # - Change an owner's role.
    #
    # By default, managers permissions include but aren't limited to:
    #
    # - Make another member a manager.
    # - Delete messages in the space.
    # - Manage space permissions.
    # - Receive notifications for requests to join the space if the manager
    #   has the "manage members" permission in the space settings.
    # - Make a space discoverable.
    #
    # Only supported in
    # {::Google::Apps::Chat::V1::Space::SpaceType SpaceType.SPACE} (named spaces).
    #
    # To learn more, see
    # [Manage space settings](https://support.google.com/chat/answer/13340792).
    ROLE_ASSISTANT_MANAGER = 4
  end
end

#role::Google::Apps::Chat::V1::Membership::MembershipRole

Returns Optional. User's role within a Chat space, which determines their permitted actions in the space.

This field can only be used as input in UpdateMembership.

Returns:



68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
# File 'proto_docs/google/chat/v1/membership.rb', line 68

class Membership
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Specifies the member's relationship with a space. Other membership states
  # might be supported in the future.
  module MembershipState
    # Default value. Don't use.
    MEMBERSHIP_STATE_UNSPECIFIED = 0

    # The user is added to the space, and can participate in the space.
    JOINED = 1

    # The user is invited to join the space, but hasn't joined it.
    INVITED = 2

    # The user doesn't belong to the space and doesn't have a pending
    # invitation to join the space.
    NOT_A_MEMBER = 3
  end

  # Represents a user's permitted actions in a Chat space. More enum values
  # might be added in the future.
  module MembershipRole
    # Default value. For {::Google::Apps::Chat::V1::Membership#member users}: they
    # aren't a member of the space, but can be invited. For
    # {::Google::Apps::Chat::V1::Membership#group_member Google Groups}: they're always
    #  assigned this role (other enum values might be used in the future).
    MEMBERSHIP_ROLE_UNSPECIFIED = 0

    # A member of the space. In the Chat UI, this role is called Member.
    #
    # The user has basic permissions, like sending
    # messages to the space.
    # Managers and owners can grant members additional permissions in a space,
    # including:
    #
    # - Add or remove members.
    # - Modify space details.
    # - Turn history on or off.
    # - Mention everyone in the space with `@all`.
    # - Manage Chat apps and webhooks installed in the space.
    #
    # In direct messages and unnamed group conversations, everyone
    # has this role.
    ROLE_MEMBER = 1

    # A space owner. In the Chat UI, this role is called Owner.
    #
    # The user has the complete set of space permissions to manage the space,
    # including:
    #
    # - Change the role of other members in the space to member, manager, or
    # owner.
    # - Delete the space.
    #
    # Only supported in
    # {::Google::Apps::Chat::V1::Space::SpaceType SpaceType.SPACE} (named spaces).
    #
    # To learn more, see
    # [Learn more about your role as a space
    # owner or manager](https://support.google.com/chat/answer/11833441).
    ROLE_MANAGER = 2

    # A space manager. In the Chat UI, this role is called Manager.
    #
    # The user has all basic permissions of `ROLE_MEMBER`,
    # and can be granted a subset of administrative permissions by an owner.
    # By default, managers have all the permissions of an owner except for the
    # ability to:
    #
    # - Delete the space.
    # - Make another space member an owner.
    # - Change an owner's role.
    #
    # By default, managers permissions include but aren't limited to:
    #
    # - Make another member a manager.
    # - Delete messages in the space.
    # - Manage space permissions.
    # - Receive notifications for requests to join the space if the manager
    #   has the "manage members" permission in the space settings.
    # - Make a space discoverable.
    #
    # Only supported in
    # {::Google::Apps::Chat::V1::Space::SpaceType SpaceType.SPACE} (named spaces).
    #
    # To learn more, see
    # [Manage space settings](https://support.google.com/chat/answer/13340792).
    ROLE_ASSISTANT_MANAGER = 4
  end
end

#state::Google::Apps::Chat::V1::Membership::MembershipState (readonly)

Returns Output only. State of the membership.

Returns:



68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
# File 'proto_docs/google/chat/v1/membership.rb', line 68

class Membership
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Specifies the member's relationship with a space. Other membership states
  # might be supported in the future.
  module MembershipState
    # Default value. Don't use.
    MEMBERSHIP_STATE_UNSPECIFIED = 0

    # The user is added to the space, and can participate in the space.
    JOINED = 1

    # The user is invited to join the space, but hasn't joined it.
    INVITED = 2

    # The user doesn't belong to the space and doesn't have a pending
    # invitation to join the space.
    NOT_A_MEMBER = 3
  end

  # Represents a user's permitted actions in a Chat space. More enum values
  # might be added in the future.
  module MembershipRole
    # Default value. For {::Google::Apps::Chat::V1::Membership#member users}: they
    # aren't a member of the space, but can be invited. For
    # {::Google::Apps::Chat::V1::Membership#group_member Google Groups}: they're always
    #  assigned this role (other enum values might be used in the future).
    MEMBERSHIP_ROLE_UNSPECIFIED = 0

    # A member of the space. In the Chat UI, this role is called Member.
    #
    # The user has basic permissions, like sending
    # messages to the space.
    # Managers and owners can grant members additional permissions in a space,
    # including:
    #
    # - Add or remove members.
    # - Modify space details.
    # - Turn history on or off.
    # - Mention everyone in the space with `@all`.
    # - Manage Chat apps and webhooks installed in the space.
    #
    # In direct messages and unnamed group conversations, everyone
    # has this role.
    ROLE_MEMBER = 1

    # A space owner. In the Chat UI, this role is called Owner.
    #
    # The user has the complete set of space permissions to manage the space,
    # including:
    #
    # - Change the role of other members in the space to member, manager, or
    # owner.
    # - Delete the space.
    #
    # Only supported in
    # {::Google::Apps::Chat::V1::Space::SpaceType SpaceType.SPACE} (named spaces).
    #
    # To learn more, see
    # [Learn more about your role as a space
    # owner or manager](https://support.google.com/chat/answer/11833441).
    ROLE_MANAGER = 2

    # A space manager. In the Chat UI, this role is called Manager.
    #
    # The user has all basic permissions of `ROLE_MEMBER`,
    # and can be granted a subset of administrative permissions by an owner.
    # By default, managers have all the permissions of an owner except for the
    # ability to:
    #
    # - Delete the space.
    # - Make another space member an owner.
    # - Change an owner's role.
    #
    # By default, managers permissions include but aren't limited to:
    #
    # - Make another member a manager.
    # - Delete messages in the space.
    # - Manage space permissions.
    # - Receive notifications for requests to join the space if the manager
    #   has the "manage members" permission in the space settings.
    # - Make a space discoverable.
    #
    # Only supported in
    # {::Google::Apps::Chat::V1::Space::SpaceType SpaceType.SPACE} (named spaces).
    #
    # To learn more, see
    # [Manage space settings](https://support.google.com/chat/answer/13340792).
    ROLE_ASSISTANT_MANAGER = 4
  end
end