SizeReservationServiceCreateResponse is the response payload for creating a size reservation.
+ SizeImageConstraint expresses optional restrictions for specific size to image combinations.
This might be required if the support for a specific hardware in a given size is only supported with a newer version of the image.
If the size in question is not found, no restrictions apply.
If the image in question is not found, no restrictions apply as well.
If the image in question is found, but does not match the given expression, machine creation must be forbidden.
@@ -18098,10 +17797,38 @@ SizeReservationServiceDeleteRequest is the request payload for deleting a size reservation.
+ SizeImageConstraintQuery
+ SizeImageConstraintQuery is used to search size image constraints.
@@ -18122,7 +17849,810 @@ SizeReservation
- | id |
+ size |
+ string |
+ optional |
+ Size of the size image constraint. |
+
+
+
+ | name |
+ string |
+ optional |
+ Name of the size image constraint to query. |
+
+
+
+ | description |
+ string |
+ optional |
+ Description of the size image constraint to query. |
+
+
+
+
+
+
+
+
+
+ SizeImageConstraintServiceTryRequest
+ SizeImageConstraintServiceTryRequest is the request payload for a size image constraint try request.
+
+
+
+
+ | Field | Type | Label | Description |
+
+
+
+
+ | size |
+ string |
+ |
+ Size to try. |
+
+
+
+ | image |
+ string |
+ |
+ Image to try. |
+
+
+
+
+
+
+
+
+
+ SizeImageConstraintServiceTryResponse
+ SizeImageConstraintServiceTryResponse is the response payload for a size image constraint try request.
+
+
+
+
+
+
+
+
+
+
+
+ SizeImageConstraintService
+ SizeImageConstraintService provides size and image constraint validation operations.
+
+
+
+
+
+
+
metalstack/admin/v2/size_imageconstraint.proto
Top
+
+
+
+
+ SizeImageConstraintServiceCreateRequest
+ SizeImageConstraintServiceCreateRequest is the request payload for creating a size image constraint.
+
+
+
+
+ | Field | Type | Label | Description |
+
+
+
+
+ | size |
+ string |
+ |
+ Size of the constraint. |
+
+
+
+ | image_constraints |
+ metalstack.api.v2.ImageConstraint |
+ repeated |
+ ImageConstraints to apply to this size. |
+
+
+
+ | meta |
+ metalstack.api.v2.Meta |
+ |
+ Meta for this size image constraint. |
+
+
+
+ | name |
+ string |
+ optional |
+ Name of this size image constraint. |
+
+
+
+ | description |
+ string |
+ optional |
+ Description of this size image constraint. |
+
+
+
+
+
+
+
+
+
+ SizeImageConstraintServiceCreateResponse
+ SizeImageConstraintServiceCreateResponse is the response payload for creating a size image constraint.
+
+
+
+
+
+
+
+
+ SizeImageConstraintServiceDeleteRequest
+ SizeImageConstraintServiceDeleteRequest is the request payload for deleting a size image constraint.
+
+
+
+
+ | Field | Type | Label | Description |
+
+
+
+
+ | size |
+ string |
+ |
+ Size of the constraint. |
+
+
+
+
+
+
+
+
+
+ SizeImageConstraintServiceDeleteResponse
+ SizeImageConstraintServiceDeleteResponse is the response payload for deleting a size image constraint.
+
+
+
+
+
+
+
+
+ SizeImageConstraintServiceGetRequest
+ SizeImageConstraintServiceGetRequest is the request payload for getting a size image constraint.
+
+
+
+
+ | Field | Type | Label | Description |
+
+
+
+
+ | size |
+ string |
+ |
+ Size of the constraint. |
+
+
+
+
+
+
+
+
+
+ SizeImageConstraintServiceGetResponse
+ SizeImageConstraintServiceGetResponse is the response payload for getting a size image constraint.
+
+
+
+
+
+
+
+
+ SizeImageConstraintServiceListRequest
+ SizeImageConstraintServiceListRequest is the request payload for listing size image constraints.
+
+
+
+
+
+
+
+
+ SizeImageConstraintServiceListResponse
+ SizeImageConstraintServiceListResponse is the response payload for listing size image constraints.
+
+
+
+
+
+
+
+
+ SizeImageConstraintServiceUpdateRequest
+ SizeImageConstraintServiceUpdateRequest is the request payload for updating a size image constraint.
+
+
+
+
+ | Field | Type | Label | Description |
+
+
+
+
+ | size |
+ string |
+ |
+ Size of the image constraint to update. |
+
+
+
+ | update_meta |
+ metalstack.api.v2.UpdateMeta |
+ |
+ UpdateMeta contains the timestamp and strategy to be used in this update request. |
+
+
+
+ | image_constraints |
+ metalstack.api.v2.ImageConstraint |
+ repeated |
+ ImageConstraints to apply to this size. |
+
+
+
+ | name |
+ string |
+ optional |
+ Name of this size image constraint. |
+
+
+
+ | description |
+ string |
+ optional |
+ Description of this size image constraint. |
+
+
+
+
+
+
+
+
+
+ SizeImageConstraintServiceUpdateResponse
+ SizeImageConstraintServiceUpdateResponse is the response payload for updating a size image constraint.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SizeImageConstraintService
+ SizeImageConstraintService provides size and image constraint management operations.
+
+
+
+
+
+
+
metalstack/api/v2/size_reservation.proto
Top
+
+
+
+
+ SizeReservation
+ SizeReservation.
+
+
+
+
+ | Field | Type | Label | Description |
+
+
+
+
+ | id |
+ string |
+ |
+ Id of this size reservation, is generated on creation. |
+
+
+
+ | meta |
+ Meta |
+ |
+ Meta for this size reservation. |
+
+
+
+ | name |
+ string |
+ |
+ Name of this size reservation. |
+
+
+
+ | description |
+ string |
+ |
+ Description of this size reservation. |
+
+
+
+ | project |
+ string |
+ |
+ Project of the size reservation. |
+
+
+
+ | size |
+ string |
+ |
+ Size id of this size reservation. |
+
+
+
+ | partitions |
+ string |
+ repeated |
+ Partition ids of this size reservation. |
+
+
+
+ | amount |
+ int32 |
+ |
+ Amount of reservations of this size reservation. |
+
+
+
+
+
+
+
+
+
+ SizeReservationQuery
+ SizeReservationQuery is used to search size reservations.
+
+
+
+
+ | Field | Type | Label | Description |
+
+
+
+
+ | id |
+ string |
+ optional |
+ ID of the size reservation to get. |
+
+
+
+ | name |
+ string |
+ optional |
+ Name of this size reservation. |
+
+
+
+ | description |
+ string |
+ optional |
+ Description of this size reservation. |
+
+
+
+ | size |
+ string |
+ optional |
+ Size id of this size reservation. |
+
+
+
+ | project |
+ string |
+ optional |
+ Project of the size reservation. |
+
+
+
+ | partition |
+ string |
+ optional |
+ Partition of the size reservation. |
+
+
+
+ | labels |
+ Labels |
+ optional |
+ Labels lists only size reservations containing the given labels. |
+
+
+
+
+
+
+
+
+
+ SizeReservationServiceGetRequest
+ SizeReservationServiceGetRequest is the request payload for a size get request.
+
+
+
+
+ | Field | Type | Label | Description |
+
+
+
+
+ | id |
+ string |
+ |
+ ID of the size reservation to get. |
+
+
+
+ | project |
+ string |
+ |
+ Project of the size reservation. |
+
+
+
+
+
+
+
+
+
+ SizeReservationServiceGetResponse
+ SizeReservationServiceGetResponse is the response payload for a size reservation get request.
+
+
+
+
+ | Field | Type | Label | Description |
+
+
+
+
+ | size_reservation |
+ SizeReservation |
+ |
+ Size reservation. |
+
+
+
+
+
+
+
+
+
+ SizeReservationServiceListRequest
+ SizeReservationServiceListRequest is the request payload for a size list request.
+
+
+
+
+ | Field | Type | Label | Description |
+
+
+
+
+ | project |
+ string |
+ |
+ Project of the size reservation. |
+
+
+
+ | query |
+ SizeReservationQuery |
+ |
+ Query for size reservations. |
+
+
+
+
+
+
+
+
+
+ SizeReservationServiceListResponse
+ SizeReservationServiceListResponse is the response payload for a size reservation list request.
+
+
+
+
+ | Field | Type | Label | Description |
+
+
+
+
+ | size_reservations |
+ SizeReservation |
+ repeated |
+ Size reservations. |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SizeReservationService
+ SizeReservationService provides size reservation management operations.
+
+
+
+
+
+
+
metalstack/admin/v2/size_reservation.proto
Top
+
+
+
+
+ SizeReservationServiceCreateRequest
+ SizeReservationServiceCreateRequest is the request payload for creating a size reservation.
+
+
+
+
+
+
+
+
+ SizeReservationServiceCreateResponse
+ SizeReservationServiceCreateResponse is the response payload for creating a size reservation.
+
+
+
+
+
+
+
+
+ SizeReservationServiceDeleteRequest
+ SizeReservationServiceDeleteRequest is the request payload for deleting a size reservation.
+
+
+
+
+ | Field | Type | Label | Description |
+
+
+
+
+ | id |
string |
|
ID of the size reservation to delete. |
@@ -19377,8 +19907,185 @@ Tenant
- TenantInvite
- TenantInvite defines invite to tenant.
+ TenantInvite
+ TenantInvite defines invite to tenant.
+
+
+
+
+ | Field | Type | Label | Description |
+
+
+
+
+ | secret |
+ string |
+ |
+ Secret is the secret part of the invite, typically part of the url. |
+
+
+
+ | target_tenant |
+ string |
+ |
+ TargetTenant is the tenant id for which this invite was created. |
+
+
+
+ | role |
+ TenantRole |
+ |
+ Role is the role in this tenant the user will get after accepting the invitation. |
+
+
+
+ | joined |
+ bool |
+ |
+ Joined is false as long as a user has not accepted the invite. |
+
+
+
+ | target_tenant_name |
+ string |
+ |
+ TargetTenantName is the tenant name for which this invite was created. |
+
+
+
+ | tenant |
+ string |
+ |
+ Tenant is the login of the tenant inviting another user to join this tenant. |
+
+
+
+ | tenant_name |
+ string |
+ |
+ TenantName is the name of the tenant inviting another user to join this tenant. |
+
+
+
+ | expires_at |
+ google.protobuf.Timestamp |
+ |
+ ExpiresAt the date when this invite expires. |
+
+
+
+ | joined_at |
+ google.protobuf.Timestamp |
+ |
+ JoinedAt the date when the member accepted this invite. |
+
+
+
+
+
+
+
+
+
+ TenantQuery
+ TenantQuery is used to search tenants.
+
+
+
+
+ | Field | Type | Label | Description |
+
+
+
+
+ | login |
+ string |
+ optional |
+ Id filters tenants by login. |
+
+
+
+ | name |
+ string |
+ optional |
+ Name filters tenants by name. |
+
+
+
+ | labels |
+ Labels |
+ optional |
+ Labels lists only projects containing the given labels. |
+
+
+
+ | paging |
+ Paging |
+ |
+ Paging details for the list request. |
+
+
+
+
+
+
+
+
+
+ TenantServiceCreateRequest
+ TenantServiceCreateRequest is the request payload of the tenant create request.
+
+
+
+
+ | Field | Type | Label | Description |
+
+
+
+
+ | name |
+ string |
+ |
+ Name of this tenant. |
+
+
+
+ | description |
+ string |
+ optional |
+ Description of this tenant. |
+
+
+
+ | email |
+ string |
+ optional |
+ Email of the tenant, if not set will be inherited from the creator. |
+
+
+
+ | avatar_url |
+ string |
+ optional |
+ AvatarUrl of the tenant. |
+
+
+
+ | labels |
+ Labels |
+ |
+ Labels on the tenant. |
+
+
+
+
+
+
+
+
+
+ TenantServiceCreateResponse
+ TenantServiceCreateResponse is the response payload of the tenant create request.
@@ -19388,66 +20095,106 @@ TenantInvite
- | secret |
- string |
- |
- Secret is the secret part of the invite, typically part of the url. |
-
-
-
- | target_tenant |
- string |
- |
- TargetTenant is the tenant id for which this invite was created. |
-
-
-
- | role |
- TenantRole |
+ tenant |
+ Tenant |
|
- Role is the role in this tenant the user will get after accepting the invitation. |
+ Tenant is the tenant. |
-
- | joined |
- bool |
- |
- Joined is false as long as a user has not accepted the invite. |
-
+
+
+
+
+
+
+
+ TenantServiceDeleteRequest
+ TenantServiceDeleteRequest is the request payload of the tenant delete request.
+
+
+
+
+ | Field | Type | Label | Description |
+
+
- | target_tenant_name |
+ login |
string |
|
- TargetTenantName is the tenant name for which this invite was created. |
+ Login of the tenant. |
+
+
+
+
+
+
+
+ TenantServiceDeleteResponse
+ TenantServiceDeleteResponse is the response payload of the tenant delete request.
+
+
+
+
+ | Field | Type | Label | Description |
+
+
+
| tenant |
- string |
+ Tenant |
|
- Tenant is the login of the tenant inviting another user to join this tenant. |
+ Tenant is the tenant. |
+
+
+
+
+
+
+
+ TenantServiceGetRequest
+ TenantServiceGetRequest is the request payload of the tenant get request.
+
+
+
+
+ | Field | Type | Label | Description |
+
+
+
- | tenant_name |
+ login |
string |
|
- TenantName is the name of the tenant inviting another user to join this tenant. |
+ Login of the tenant. |
-
- | expires_at |
- google.protobuf.Timestamp |
- |
- ExpiresAt the date when this invite expires. |
-
+
+
+
+
+
+
+
+ TenantServiceGetResponse
+ TenantServiceGetResponse is the response payload of the tenant get request.
+
+
+
+
+ | Field | Type | Label | Description |
+
+
- | joined_at |
- google.protobuf.Timestamp |
+ tenant |
+ Tenant |
|
- JoinedAt the date when the member accepted this invite. |
+ Tenant is the tenant. |
@@ -19457,8 +20204,8 @@ TenantInvite
- TenantMember
- TenantMember defines a user that participates in a tenant.
+ TenantServiceInviteAcceptRequest
+ TenantServiceInviteAcceptRequest is the request payload to a accept invite request.
@@ -19468,38 +20215,41 @@ TenantMember
- | id |
+ secret |
string |
|
- Id is the user id of the member. |
+ Secret is the invitation secret part of the invitation url. |
-
- | role |
- TenantRole |
- |
- Role is the role of the member. |
-
+
+
+
+
+
+
+
+ TenantServiceInviteAcceptResponse
+ TenantServiceInviteAcceptResponse is the response payload to a accept invite request.
+
+
+
+
+ | Field | Type | Label | Description |
+
+
- | projects |
+ tenant |
string |
- repeated |
- Projects in which a user is a direct member. |
-
-
-
- | created_at |
- google.protobuf.Timestamp |
|
- CreatedAt the date when the member was added to the tenant. |
+ Tenant ID of the joined tenant. |
- | meta |
- Meta |
+ tenant_name |
+ string |
|
- Meta for this tenant member. |
+ TenantName of the joined tenant. |
@@ -19509,8 +20259,8 @@ TenantMember
- TenantQuery
- TenantQuery is used to search tenants.
+ TenantServiceInviteDeleteRequest
+ TenantServiceInviteDeleteRequest is the request payload to a delete invite.
@@ -19522,29 +20272,15 @@ TenantQuery
| login |
string |
- optional |
- Id filters tenants by login. |
+ |
+ Login of the tenant. |
- | name |
+ secret |
string |
- optional |
- Name filters tenants by name. |
-
-
-
- | labels |
- Labels |
- optional |
- Labels lists only projects containing the given labels. |
-
-
-
- | paging |
- Paging |
|
- Paging details for the list request. |
+ Secret of the invite to delete. |
@@ -19554,8 +20290,15 @@ TenantQuery
- TenantServiceAddMemberRequest
- TenantServiceAddMemberRequest is the request payload for adding a member to a tenant.
+ TenantServiceInviteDeleteResponse
+ TenantServiceInviteDeleteResponse is the response payload of a delete invite request.
+
+
+
+
+
+ TenantServiceInviteGetRequest
+ TenantServiceInviteGetRequest is the request payload to get a invite.
@@ -19565,24 +20308,10 @@ TenantServiceAddMemberR
- | login |
- string |
- |
- Login of the tenant to which the member will be added. |
-
-
-
- | member |
+ secret |
string |
|
- Login of the member to add. |
-
-
-
- | role |
- TenantRole |
- |
- Role to assign to the new member. |
+ Secret of the invite to get. |
@@ -19592,8 +20321,8 @@ TenantServiceAddMemberR
- TenantServiceAddMemberResponse
-
TenantServiceAddMemberResponse is the response payload for the add member request.
+ TenantServiceInviteGetResponse
+ TenantServiceInviteGetResponse is the response payload to a get invite request.
@@ -19603,10 +20332,10 @@ TenantServiceAddMember
- | tenant_member |
- TenantMember |
+ invite |
+ TenantInvite |
|
- TenantMember is the added tenant member. |
+ Invite is the invite. |
@@ -19616,8 +20345,8 @@ TenantServiceAddMember
- TenantServiceCreateRequest
-
TenantServiceCreateRequest is the request payload of the tenant create request.
+ TenantServiceInviteRequest
+ TenantServiceInviteRequest is used to invite a member to a tenant.
@@ -19627,38 +20356,17 @@ TenantServiceCreateRequest
- | name |
+ login |
string |
|
- Name of this tenant. |
-
-
-
- | description |
- string |
- optional |
- Description of this tenant. |
-
-
-
- | email |
- string |
- optional |
- Email of the tenant, if not set will be inherited from the creator. |
-
-
-
- | avatar_url |
- string |
- optional |
- AvatarUrl of the tenant. |
+ Login of the tenant. |
- | labels |
- Labels |
+ role |
+ TenantRole |
|
- Labels on the tenant. |
+ Role of this user in this tenant. |
@@ -19668,8 +20376,8 @@ TenantServiceCreateRequest
- TenantServiceCreateResponse
-
TenantServiceCreateResponse is the response payload of the tenant create request.
+ TenantServiceInviteResponse
+ TenantServiceInviteRequest is the response payload to a invite member request.
@@ -19679,10 +20387,10 @@ TenantServiceCreateRespon
- | tenant |
- Tenant |
+ invite |
+ TenantInvite |
|
- Tenant is the tenant. |
+ Invite contains a secret which can be sent to a potential user. |
@@ -19692,8 +20400,8 @@ TenantServiceCreateRespon
- TenantServiceDeleteRequest
-
TenantServiceDeleteRequest is the request payload of the tenant delete request.
+ TenantServiceInvitesListRequest
+ TenantServiceInvitesListRequest is the request payload to a list invites request.
@@ -19716,8 +20424,8 @@ TenantServiceDeleteRequest
- TenantServiceDeleteResponse
-
TenantServiceDeleteResponse is the response payload of the tenant delete request.
+ TenantServiceInvitesListResponse
+ TenantServiceInvitesListResponse is the response payload to a list invites request.
@@ -19727,10 +20435,10 @@ TenantServiceDeleteRespon
- | tenant |
- Tenant |
- |
- Tenant is the tenant. |
+ invites |
+ TenantInvite |
+ repeated |
+ Invites that have not yet accepted the invitation to this tenant. |
@@ -19740,8 +20448,8 @@ TenantServiceDeleteRespon
- TenantServiceGetRequest
-
TenantServiceGetRequest is the request payload of the tenant get request.
+ TenantServiceListRequest
+ TenantServiceListRequest is the request payload of the tenant list request.
@@ -19751,10 +20459,10 @@ TenantServiceGetRequest
- | login |
- string |
+ query |
+ TenantQuery |
|
- Login of the tenant. |
+ Query for tenants. |
@@ -19764,8 +20472,8 @@ TenantServiceGetRequest
- TenantServiceGetResponse
- TenantServiceGetResponse is the response payload of the tenant get request.
+ TenantServiceListResponse
+ TenantServiceListResponse is the response payload of the tenant list request.
@@ -19775,17 +20483,10 @@ TenantServiceGetResponse
- | tenant |
+ tenants |
Tenant |
- |
- Tenant is the tenant. |
-
-
-
- | tenant_members |
- TenantMember |
repeated |
- TenantMembers of this tenant. |
+ Tenants is the list of tenants. |
@@ -19795,8 +20496,8 @@ TenantServiceGetResponse
TenantServiceInviteAcceptRequest
- TenantServiceInviteAcceptRequest is the request payload to a accept invite request.
+ TenantServiceUpdateRequest
+ TenantServiceUpdateRequest is the request payload of the tenant update request.
@@ -19806,41 +20507,52 @@ TenantServiceInviteA
- | secret |
+ login |
string |
|
- Secret is the invitation secret part of the invitation url. |
+ Login of the tenant. |
-
-
-
-
-
-
-
- TenantServiceInviteAcceptResponse
- TenantServiceInviteAcceptResponse is the response payload to a accept invite request.
-
-
-
-
- | Field | Type | Label | Description |
-
-
+
+ | update_meta |
+ UpdateMeta |
+ |
+ UpdateMeta contains the timestamp and strategy to be used in this update request. |
+
- | tenant |
+ name |
string |
- |
- Tenant ID of the joined tenant. |
+ optional |
+ Name of the tenant. |
- | tenant_name |
+ email |
string |
- |
- TenantName of the joined tenant. |
+ optional |
+ Email of the tenant. |
+
+
+
+ | description |
+ string |
+ optional |
+ Description of this tenant. |
+
+
+
+ | avatar_url |
+ string |
+ optional |
+ AvatarUrl of the tenant. |
+
+
+
+ | labels |
+ UpdateLabels |
+ optional |
+ Labels on the tenant. |
@@ -19850,8 +20562,8 @@ TenantServiceInvite
- TenantServiceInviteDeleteRequest
-
TenantServiceInviteDeleteRequest is the request payload to a delete invite.
+ TenantServiceUpdateResponse
+ TenantServiceUpdateResponse is the response payload of the tenant update request.
@@ -19861,17 +20573,10 @@ TenantServiceInviteD
- | login |
- string |
- |
- Login of the tenant. |
-
-
-
- | secret |
- string |
+ tenant |
+ Tenant |
|
- Secret of the invite to delete. |
+ Tenant is the tenant. |
@@ -19881,15 +20586,104 @@ TenantServiceInviteD
- TenantServiceInviteDeleteResponse
-
TenantServiceInviteDeleteResponse is the response payload of a delete invite request.
-
+
+
+
+
+
+ TenantService
+ TenantService provides tenant management operations.
+
+
- TenantServiceInviteGetRequest
- TenantServiceInviteGetRequest is the request payload to get a invite.
+
+
metalstack/api/v2/tenant_member.proto
Top
+
+
+
+
+ TenantMember
+ TenantMember defines a user that participates in a tenant.
@@ -19899,10 +20693,45 @@ TenantServiceInviteGetR
- | secret |
+ member |
+ string |
+ |
+ Member is the user id of the member. |
+
+
+
+ | role |
+ TenantRole |
+ |
+ Role is the role of the member. |
+
+
+
+ | projects |
+ string |
+ repeated |
+ Projects in which a user is a direct member. |
+
+
+
+ | created_at |
+ google.protobuf.Timestamp |
+ |
+ CreatedAt the date when the member was added to the tenant. |
+
+
+
+ | meta |
+ Meta |
+ |
+ Meta for this tenant member. |
+
+
+
+ | tenant |
string |
|
- Secret of the invite to get. |
+ Tenant is the tenant that this member participates in. |
@@ -19912,8 +20741,8 @@ TenantServiceInviteGetR
- TenantServiceInviteGetResponse
-
TenantServiceInviteGetResponse is the response payload to a get invite request.
+ TenantMemberQuery
+ TenantMemberQuery is used to search tenant members.
@@ -19923,10 +20752,24 @@ TenantServiceInviteGet
- | invite |
- TenantInvite |
- |
- Invite is the invite. |
+ member |
+ string |
+ optional |
+ Member is the user id of the member. |
+
+
+
+ | role |
+ TenantRole |
+ optional |
+ Role is the role of the member. |
+
+
+
+ | projects |
+ string |
+ repeated |
+ Projects in which a user is a direct member. |
@@ -19936,8 +20779,8 @@ TenantServiceInviteGet
- TenantServiceInviteRequest
-
TenantServiceInviteRequest is used to invite a member to a tenant.
+ TenantMemberServiceCreateRequest
+ TenantMemberServiceCreateRequest is the request payload for adding a member to a tenant.
@@ -19950,14 +20793,21 @@ TenantServiceInviteRequest
| login |
string |
|
- Login of the tenant. |
+ Login of the tenant to which the member will be added. |
+
+
+
+ | member |
+ string |
+ |
+ Login of the member to add. |
| role |
TenantRole |
|
- Role of this user in this tenant. |
+ Role to assign to the new member. |
@@ -19967,8 +20817,8 @@ TenantServiceInviteRequest
- TenantServiceInviteResponse
-
TenantServiceInviteRequest is the response payload to a invite member request.
+ TenantMemberServiceCreateResponse
+ TenantMemberServiceCreateResponse is the response payload of the tenant member create request.
@@ -19978,10 +20828,10 @@ TenantServiceInviteRespon
- | invite |
- TenantInvite |
+ member |
+ TenantMember |
|
- Invite contains a secret which can be sent to a potential user. |
+ Member is the member of this tenant. |
@@ -19991,8 +20841,8 @@ TenantServiceInviteRespon
- TenantServiceInvitesListRequest
-
TenantServiceInvitesListRequest is the request payload to a list invites request.
+ TenantMemberServiceDeleteRequest
+ TenantMemberServiceDeleteRequest is used to remove a member from a tenant.
@@ -20008,6 +20858,13 @@ TenantServiceInvitesL
Login of the tenant. |
+
+ | member |
+ string |
+ |
+ Member is the id of the member to remove from this tenant. |
+
+
@@ -20015,8 +20872,8 @@ TenantServiceInvitesL
- TenantServiceInvitesListResponse
-
TenantServiceInvitesListResponse is the response payload to a list invites request.
+ TenantMemberServiceDeleteResponse
+ TenantMemberServiceDeleteResponse is the response payload of the tenant member delete request.
@@ -20026,10 +20883,10 @@ TenantServiceInvites
- | invites |
- TenantInvite |
- repeated |
- Invites that have not yet accepted the invitation to this tenant. |
+ member |
+ TenantMember |
+ |
+ Member is the member of this tenant. |
@@ -20039,8 +20896,8 @@ TenantServiceInvites
- TenantServiceLeaveRequest
-
TenantServiceLeaveTenantRequest is used to leave a tenant.
+ TenantMemberServiceGetRequest
+ TenantMemberServiceGetRequest is the request payload of the tenant member get request.
@@ -20056,35 +20913,11 @@ TenantServiceLeaveRequest
Login of the tenant. |
-
-
-
-
-
-
-
- TenantServiceLeaveResponse
- TenantServiceLeaveTenantResponse is the response payload to a leave tenant request.
-
-
-
-
-
- TenantServiceListRequest
- TenantServiceListRequest is the request payload of the tenant list request.
-
-
-
-
- | Field | Type | Label | Description |
-
-
-
- | query |
- TenantQuery |
+ member |
+ string |
|
- Query for tenants. |
+ Member is the user id of the member. |
@@ -20094,8 +20927,8 @@ TenantServiceListRequest
TenantServiceListResponse
- TenantServiceListResponse is the response payload of the tenant list request.
+ TenantMemberServiceGetResponse
+ TenantMemberServiceGetResponse is the response payload of the tenant member get request.
@@ -20105,10 +20938,10 @@ TenantServiceListResponse
- | tenants |
- Tenant |
- repeated |
- Tenants is the list of tenants. |
+ member |
+ TenantMember |
+ |
+ Member is the member of this tenant. |
@@ -20118,8 +20951,8 @@ TenantServiceListResponse
- TenantServiceRemoveMemberRequest
-
TenantServiceRemoveMemberRequest is used to remove a member from a tenant.
+ TenantMemberServiceLeaveRequest
+ TenantMemberServiceLeaveRequest is used to leave a tenant. This way a member is not required to ask a tenant owner to remove him.
@@ -20132,14 +20965,7 @@ TenantServiceRemoveM
| login |
string |
|
- Login of the tenant. |
-
-
-
- | member |
- string |
- |
- Member is the id of the member to remove from this tenant. |
+ Login of the tenant that the user wants to leave. |
@@ -20149,8 +20975,8 @@ TenantServiceRemoveM
- TenantServiceRemoveMemberResponse
-
TenantServiceRemoveMemberResponse is the response payload to a remove member request.
+ TenantMemberServiceLeaveResponse
+ TenantMemberServiceLeaveResponse is the response payload to a leave tenant request.
@@ -20160,10 +20986,10 @@ TenantServiceRemove
- | tenant_member |
+ member |
TenantMember |
|
- TenantMember is the removed tenant member. |
+ Member is the member of this tenant. |
@@ -20173,8 +20999,8 @@ TenantServiceRemove
- TenantServiceUpdateMemberRequest
-
TenantServiceUpdateMemberRequest is used to update a member from a tenant.
+ TenantMemberServiceListRequest
+ TenantMemberServiceListRequest is the request payload of the tenant member list request.
@@ -20191,17 +21017,10 @@ TenantServiceUpdateM
- | member |
- string |
- |
- Member is the id of the member to update in this tenant. |
-
-
-
- | role |
- TenantRole |
+ query |
+ TenantMemberQuery |
|
- Role of this user in this tenant. |
+ Query for tenant members. |
@@ -20211,8 +21030,8 @@ TenantServiceUpdateM
- TenantServiceUpdateMemberResponse
-
TenantServiceUpdateMemberResponse is the response payload to a update member request.
+ TenantMemberServiceListResponse
+ TenantMemberServiceListResponse is the response payload of the tenant member list request.
@@ -20222,10 +21041,10 @@ TenantServiceUpdate
- | tenant_member |
+ members |
TenantMember |
- |
- TenantMember is the updated membership. |
+ repeated |
+ Members is the list of tenant members. |
@@ -20235,8 +21054,8 @@ TenantServiceUpdate
- TenantServiceUpdateRequest
-
TenantServiceUpdateRequest is the request payload of the tenant update request.
+ TenantMemberServiceUpdateRequest
+ TenantMemberServiceUpdateRequest is used to update a member from a tenant.
@@ -20253,45 +21072,24 @@ TenantServiceUpdateRequest
- | update_meta |
- UpdateMeta |
- |
- UpdateMeta contains the timestamp and strategy to be used in this update request. |
-
-
-
- | name |
- string |
- optional |
- Name of the tenant. |
-
-
-
- | email |
- string |
- optional |
- Email of the tenant. |
-
-
-
- | description |
+ member |
string |
- optional |
- Description of this tenant. |
+ |
+ Member is the id of the member to update in this tenant. |
- | avatar_url |
- string |
+ role |
+ TenantRole |
optional |
- AvatarUrl of the tenant. |
+ Role of this user in this tenant. |
- | labels |
- UpdateLabels |
- optional |
- Labels on the tenant. |
+ update_meta |
+ UpdateMeta |
+ |
+ UpdateMeta contains the timestamp and strategy to be used in this update request. |
@@ -20301,8 +21099,8 @@ TenantServiceUpdateRequest
- TenantServiceUpdateResponse
-
TenantServiceUpdateResponse is the response payload of the tenant update request.
+ TenantMemberServiceUpdateResponse
+ TenantMemberServiceUpdateResponse is the response payload of the tenant member update request.
@@ -20312,10 +21110,10 @@ TenantServiceUpdateRespon
- | tenant |
- Tenant |
+ member |
+ TenantMember |
|
- Tenant is the tenant. |
+ Member is the member of this tenant. |
@@ -20331,8 +21129,8 @@ TenantServiceUpdateRespon
- TenantService
-
TenantService provides tenant management operations.
+ TenantMemberService
+ TenantMemberService provides tenant member management operations.
@@ -20498,10 +21240,10 @@ TenantServiceAddMemb
- | tenant_member |
+ member |
metalstack.api.v2.TenantMember |
|
- TenantMember is the added tenant member. |
+ Member is the added tenant member. |
@@ -20556,6 +21298,13 @@ TenantServiceCreateReque
Labels on the tenant. |
+
+ | login |
+ string |
+ optional |
+ Login of the tenant. |
+
+
@@ -20684,10 +21433,10 @@ TenantServiceRemo
- | tenant_member |
+ member |
metalstack.api.v2.TenantMember |
|
- TenantMember is the removed tenant member. |
+ Member is the removed tenant member. |
diff --git a/generate/generate.go b/generate/generate.go
index 24d0d4d1..388e4944 100644
--- a/generate/generate.go
+++ b/generate/generate.go
@@ -278,6 +278,13 @@ func svcs(root string) (map[string]api, error) {
_, name, _ := strings.Cut(*fd.Package, "metalstack.")
name = strings.ReplaceAll(name, ".", "")
+ switch name {
+ case "cliv2":
+ continue
+ default:
+ // noop
+ }
+
a, ok := result[name]
if !ok {
a = api{
diff --git a/go/client/client.go b/go/client/client.go
index 40b546e1..2f8fed2b 100755
--- a/go/client/client.go
+++ b/go/client/client.go
@@ -76,10 +76,12 @@ type (
Network() apiv2connect.NetworkServiceClient
Partition() apiv2connect.PartitionServiceClient
Project() apiv2connect.ProjectServiceClient
+ ProjectMember() apiv2connect.ProjectMemberServiceClient
Size() apiv2connect.SizeServiceClient
SizeImageConstraint() apiv2connect.SizeImageConstraintServiceClient
SizeReservation() apiv2connect.SizeReservationServiceClient
Tenant() apiv2connect.TenantServiceClient
+ TenantMember() apiv2connect.TenantMemberServiceClient
Token() apiv2connect.TokenServiceClient
User() apiv2connect.UserServiceClient
Version() apiv2connect.VersionServiceClient
@@ -96,10 +98,12 @@ type (
networkservice apiv2connect.NetworkServiceClient
partitionservice apiv2connect.PartitionServiceClient
projectservice apiv2connect.ProjectServiceClient
+ projectmemberservice apiv2connect.ProjectMemberServiceClient
sizeservice apiv2connect.SizeServiceClient
sizeimageconstraintservice apiv2connect.SizeImageConstraintServiceClient
sizereservationservice apiv2connect.SizeReservationServiceClient
tenantservice apiv2connect.TenantServiceClient
+ tenantmemberservice apiv2connect.TenantMemberServiceClient
tokenservice apiv2connect.TokenServiceClient
userservice apiv2connect.UserServiceClient
versionservice apiv2connect.VersionServiceClient
@@ -344,6 +348,12 @@ func (c *client) Apiv2() Apiv2 {
connect.WithInterceptors(c.interceptors...),
compress.WithAll(compress.LevelBalanced),
),
+ projectmemberservice: apiv2connect.NewProjectMemberServiceClient(
+ c.config.HttpClient(),
+ c.config.BaseURL,
+ connect.WithInterceptors(c.interceptors...),
+ compress.WithAll(compress.LevelBalanced),
+ ),
sizeservice: apiv2connect.NewSizeServiceClient(
c.config.HttpClient(),
c.config.BaseURL,
@@ -368,6 +378,12 @@ func (c *client) Apiv2() Apiv2 {
connect.WithInterceptors(c.interceptors...),
compress.WithAll(compress.LevelBalanced),
),
+ tenantmemberservice: apiv2connect.NewTenantMemberServiceClient(
+ c.config.HttpClient(),
+ c.config.BaseURL,
+ connect.WithInterceptors(c.interceptors...),
+ compress.WithAll(compress.LevelBalanced),
+ ),
tokenservice: apiv2connect.NewTokenServiceClient(
c.config.HttpClient(),
c.config.BaseURL,
@@ -420,6 +436,9 @@ func (c *apiv2) Partition() apiv2connect.PartitionServiceClient {
func (c *apiv2) Project() apiv2connect.ProjectServiceClient {
return c.projectservice
}
+func (c *apiv2) ProjectMember() apiv2connect.ProjectMemberServiceClient {
+ return c.projectmemberservice
+}
func (c *apiv2) Size() apiv2connect.SizeServiceClient {
return c.sizeservice
}
@@ -432,6 +451,9 @@ func (c *apiv2) SizeReservation() apiv2connect.SizeReservationServiceClient {
func (c *apiv2) Tenant() apiv2connect.TenantServiceClient {
return c.tenantservice
}
+func (c *apiv2) TenantMember() apiv2connect.TenantMemberServiceClient {
+ return c.tenantmemberservice
+}
func (c *apiv2) Token() apiv2connect.TokenServiceClient {
return c.tokenservice
}
diff --git a/go/metalstack/admin/v2/adminv2connect/project.connect.go b/go/metalstack/admin/v2/adminv2connect/project.connect.go
index 9d614b2f..c7f706c1 100644
--- a/go/metalstack/admin/v2/adminv2connect/project.connect.go
+++ b/go/metalstack/admin/v2/adminv2connect/project.connect.go
@@ -33,14 +33,28 @@ const (
// reflection-formatted method names, remove the leading slash and convert the remaining slash to a
// period.
const (
+ // ProjectServiceCreateProcedure is the fully-qualified name of the ProjectService's Create RPC.
+ ProjectServiceCreateProcedure = "/metalstack.admin.v2.ProjectService/Create"
// ProjectServiceListProcedure is the fully-qualified name of the ProjectService's List RPC.
ProjectServiceListProcedure = "/metalstack.admin.v2.ProjectService/List"
+ // ProjectServiceAddMemberProcedure is the fully-qualified name of the ProjectService's AddMember
+ // RPC.
+ ProjectServiceAddMemberProcedure = "/metalstack.admin.v2.ProjectService/AddMember"
+ // ProjectServiceRemoveMemberProcedure is the fully-qualified name of the ProjectService's
+ // RemoveMember RPC.
+ ProjectServiceRemoveMemberProcedure = "/metalstack.admin.v2.ProjectService/RemoveMember"
)
// ProjectServiceClient is a client for the metalstack.admin.v2.ProjectService service.
type ProjectServiceClient interface {
+ // Creates a new project.
+ Create(context.Context, *v2.ProjectServiceCreateRequest) (*v2.ProjectServiceCreateResponse, error)
// Returns the list of projects matching the filter criteria.
List(context.Context, *v2.ProjectServiceListRequest) (*v2.ProjectServiceListResponse, error)
+ // Add a member to a project.
+ AddMember(context.Context, *v2.ProjectServiceAddMemberRequest) (*v2.ProjectServiceAddMemberResponse, error)
+ // RemoveMember removes a member from a project.
+ RemoveMember(context.Context, *v2.ProjectServiceRemoveMemberRequest) (*v2.ProjectServiceRemoveMemberResponse, error)
}
// NewProjectServiceClient constructs a client for the metalstack.admin.v2.ProjectService service.
@@ -54,18 +68,48 @@ func NewProjectServiceClient(httpClient connect.HTTPClient, baseURL string, opts
baseURL = strings.TrimRight(baseURL, "/")
projectServiceMethods := v2.File_metalstack_admin_v2_project_proto.Services().ByName("ProjectService").Methods()
return &projectServiceClient{
+ create: connect.NewClient[v2.ProjectServiceCreateRequest, v2.ProjectServiceCreateResponse](
+ httpClient,
+ baseURL+ProjectServiceCreateProcedure,
+ connect.WithSchema(projectServiceMethods.ByName("Create")),
+ connect.WithClientOptions(opts...),
+ ),
list: connect.NewClient[v2.ProjectServiceListRequest, v2.ProjectServiceListResponse](
httpClient,
baseURL+ProjectServiceListProcedure,
connect.WithSchema(projectServiceMethods.ByName("List")),
connect.WithClientOptions(opts...),
),
+ addMember: connect.NewClient[v2.ProjectServiceAddMemberRequest, v2.ProjectServiceAddMemberResponse](
+ httpClient,
+ baseURL+ProjectServiceAddMemberProcedure,
+ connect.WithSchema(projectServiceMethods.ByName("AddMember")),
+ connect.WithClientOptions(opts...),
+ ),
+ removeMember: connect.NewClient[v2.ProjectServiceRemoveMemberRequest, v2.ProjectServiceRemoveMemberResponse](
+ httpClient,
+ baseURL+ProjectServiceRemoveMemberProcedure,
+ connect.WithSchema(projectServiceMethods.ByName("RemoveMember")),
+ connect.WithClientOptions(opts...),
+ ),
}
}
// projectServiceClient implements ProjectServiceClient.
type projectServiceClient struct {
- list *connect.Client[v2.ProjectServiceListRequest, v2.ProjectServiceListResponse]
+ create *connect.Client[v2.ProjectServiceCreateRequest, v2.ProjectServiceCreateResponse]
+ list *connect.Client[v2.ProjectServiceListRequest, v2.ProjectServiceListResponse]
+ addMember *connect.Client[v2.ProjectServiceAddMemberRequest, v2.ProjectServiceAddMemberResponse]
+ removeMember *connect.Client[v2.ProjectServiceRemoveMemberRequest, v2.ProjectServiceRemoveMemberResponse]
+}
+
+// Create calls metalstack.admin.v2.ProjectService.Create.
+func (c *projectServiceClient) Create(ctx context.Context, req *v2.ProjectServiceCreateRequest) (*v2.ProjectServiceCreateResponse, error) {
+ response, err := c.create.CallUnary(ctx, connect.NewRequest(req))
+ if response != nil {
+ return response.Msg, err
+ }
+ return nil, err
}
// List calls metalstack.admin.v2.ProjectService.List.
@@ -77,10 +121,34 @@ func (c *projectServiceClient) List(ctx context.Context, req *v2.ProjectServiceL
return nil, err
}
+// AddMember calls metalstack.admin.v2.ProjectService.AddMember.
+func (c *projectServiceClient) AddMember(ctx context.Context, req *v2.ProjectServiceAddMemberRequest) (*v2.ProjectServiceAddMemberResponse, error) {
+ response, err := c.addMember.CallUnary(ctx, connect.NewRequest(req))
+ if response != nil {
+ return response.Msg, err
+ }
+ return nil, err
+}
+
+// RemoveMember calls metalstack.admin.v2.ProjectService.RemoveMember.
+func (c *projectServiceClient) RemoveMember(ctx context.Context, req *v2.ProjectServiceRemoveMemberRequest) (*v2.ProjectServiceRemoveMemberResponse, error) {
+ response, err := c.removeMember.CallUnary(ctx, connect.NewRequest(req))
+ if response != nil {
+ return response.Msg, err
+ }
+ return nil, err
+}
+
// ProjectServiceHandler is an implementation of the metalstack.admin.v2.ProjectService service.
type ProjectServiceHandler interface {
+ // Creates a new project.
+ Create(context.Context, *v2.ProjectServiceCreateRequest) (*v2.ProjectServiceCreateResponse, error)
// Returns the list of projects matching the filter criteria.
List(context.Context, *v2.ProjectServiceListRequest) (*v2.ProjectServiceListResponse, error)
+ // Add a member to a project.
+ AddMember(context.Context, *v2.ProjectServiceAddMemberRequest) (*v2.ProjectServiceAddMemberResponse, error)
+ // RemoveMember removes a member from a project.
+ RemoveMember(context.Context, *v2.ProjectServiceRemoveMemberRequest) (*v2.ProjectServiceRemoveMemberResponse, error)
}
// NewProjectServiceHandler builds an HTTP handler from the service implementation. It returns the
@@ -90,16 +158,40 @@ type ProjectServiceHandler interface {
// and JSON codecs. They also support gzip compression.
func NewProjectServiceHandler(svc ProjectServiceHandler, opts ...connect.HandlerOption) (string, http.Handler) {
projectServiceMethods := v2.File_metalstack_admin_v2_project_proto.Services().ByName("ProjectService").Methods()
+ projectServiceCreateHandler := connect.NewUnaryHandlerSimple(
+ ProjectServiceCreateProcedure,
+ svc.Create,
+ connect.WithSchema(projectServiceMethods.ByName("Create")),
+ connect.WithHandlerOptions(opts...),
+ )
projectServiceListHandler := connect.NewUnaryHandlerSimple(
ProjectServiceListProcedure,
svc.List,
connect.WithSchema(projectServiceMethods.ByName("List")),
connect.WithHandlerOptions(opts...),
)
+ projectServiceAddMemberHandler := connect.NewUnaryHandlerSimple(
+ ProjectServiceAddMemberProcedure,
+ svc.AddMember,
+ connect.WithSchema(projectServiceMethods.ByName("AddMember")),
+ connect.WithHandlerOptions(opts...),
+ )
+ projectServiceRemoveMemberHandler := connect.NewUnaryHandlerSimple(
+ ProjectServiceRemoveMemberProcedure,
+ svc.RemoveMember,
+ connect.WithSchema(projectServiceMethods.ByName("RemoveMember")),
+ connect.WithHandlerOptions(opts...),
+ )
return "/metalstack.admin.v2.ProjectService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
switch r.URL.Path {
+ case ProjectServiceCreateProcedure:
+ projectServiceCreateHandler.ServeHTTP(w, r)
case ProjectServiceListProcedure:
projectServiceListHandler.ServeHTTP(w, r)
+ case ProjectServiceAddMemberProcedure:
+ projectServiceAddMemberHandler.ServeHTTP(w, r)
+ case ProjectServiceRemoveMemberProcedure:
+ projectServiceRemoveMemberHandler.ServeHTTP(w, r)
default:
http.NotFound(w, r)
}
@@ -109,6 +201,18 @@ func NewProjectServiceHandler(svc ProjectServiceHandler, opts ...connect.Handler
// UnimplementedProjectServiceHandler returns CodeUnimplemented from all methods.
type UnimplementedProjectServiceHandler struct{}
+func (UnimplementedProjectServiceHandler) Create(context.Context, *v2.ProjectServiceCreateRequest) (*v2.ProjectServiceCreateResponse, error) {
+ return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.admin.v2.ProjectService.Create is not implemented"))
+}
+
func (UnimplementedProjectServiceHandler) List(context.Context, *v2.ProjectServiceListRequest) (*v2.ProjectServiceListResponse, error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.admin.v2.ProjectService.List is not implemented"))
}
+
+func (UnimplementedProjectServiceHandler) AddMember(context.Context, *v2.ProjectServiceAddMemberRequest) (*v2.ProjectServiceAddMemberResponse, error) {
+ return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.admin.v2.ProjectService.AddMember is not implemented"))
+}
+
+func (UnimplementedProjectServiceHandler) RemoveMember(context.Context, *v2.ProjectServiceRemoveMemberRequest) (*v2.ProjectServiceRemoveMemberResponse, error) {
+ return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.admin.v2.ProjectService.RemoveMember is not implemented"))
+}
diff --git a/go/metalstack/admin/v2/project.pb.go b/go/metalstack/admin/v2/project.pb.go
index e00042f6..1d513076 100644
--- a/go/metalstack/admin/v2/project.pb.go
+++ b/go/metalstack/admin/v2/project.pb.go
@@ -7,6 +7,7 @@
package adminv2
import (
+ _ "buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate"
v2 "github.com/metal-stack/api/go/metalstack/api/v2"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
@@ -114,19 +115,394 @@ func (x *ProjectServiceListResponse) GetProjects() []*v2.Project {
return nil
}
+// ProjectServiceCreateRequest is the request payload to Create a project.
+type ProjectServiceCreateRequest struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Login is the tenant of this project.
+ Login string `protobuf:"bytes,1,opt,name=login,proto3" json:"login,omitempty"`
+ // Name of this project, unique per tenant.
+ Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
+ // Description of this project.
+ Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
+ // Avatar URL of the project.
+ AvatarUrl *string `protobuf:"bytes,4,opt,name=avatar_url,json=avatarUrl,proto3,oneof" json:"avatar_url,omitempty"`
+ // Labels on the project.
+ Labels *v2.Labels `protobuf:"bytes,5,opt,name=labels,proto3" json:"labels,omitempty"`
+ // Project is the uuid of the project.
+ Project *string `protobuf:"bytes,6,opt,name=project,proto3,oneof" json:"project,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *ProjectServiceCreateRequest) Reset() {
+ *x = ProjectServiceCreateRequest{}
+ mi := &file_metalstack_admin_v2_project_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *ProjectServiceCreateRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProjectServiceCreateRequest) ProtoMessage() {}
+
+func (x *ProjectServiceCreateRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_admin_v2_project_proto_msgTypes[2]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProjectServiceCreateRequest.ProtoReflect.Descriptor instead.
+func (*ProjectServiceCreateRequest) Descriptor() ([]byte, []int) {
+ return file_metalstack_admin_v2_project_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *ProjectServiceCreateRequest) GetLogin() string {
+ if x != nil {
+ return x.Login
+ }
+ return ""
+}
+
+func (x *ProjectServiceCreateRequest) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *ProjectServiceCreateRequest) GetDescription() string {
+ if x != nil {
+ return x.Description
+ }
+ return ""
+}
+
+func (x *ProjectServiceCreateRequest) GetAvatarUrl() string {
+ if x != nil && x.AvatarUrl != nil {
+ return *x.AvatarUrl
+ }
+ return ""
+}
+
+func (x *ProjectServiceCreateRequest) GetLabels() *v2.Labels {
+ if x != nil {
+ return x.Labels
+ }
+ return nil
+}
+
+func (x *ProjectServiceCreateRequest) GetProject() string {
+ if x != nil && x.Project != nil {
+ return *x.Project
+ }
+ return ""
+}
+
+// ProjectServiceCreateResponse is the response payload for creating a project.
+type ProjectServiceCreateResponse struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Project contains the created project.
+ Project *v2.Project `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *ProjectServiceCreateResponse) Reset() {
+ *x = ProjectServiceCreateResponse{}
+ mi := &file_metalstack_admin_v2_project_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *ProjectServiceCreateResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProjectServiceCreateResponse) ProtoMessage() {}
+
+func (x *ProjectServiceCreateResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_admin_v2_project_proto_msgTypes[3]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProjectServiceCreateResponse.ProtoReflect.Descriptor instead.
+func (*ProjectServiceCreateResponse) Descriptor() ([]byte, []int) {
+ return file_metalstack_admin_v2_project_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *ProjectServiceCreateResponse) GetProject() *v2.Project {
+ if x != nil {
+ return x.Project
+ }
+ return nil
+}
+
+// ProjectServiceAddMemberRequest is the request payload for adding a member to a tenant.
+type ProjectServiceAddMemberRequest struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Project is the uuid of the project.
+ Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
+ // Login of the member to add.
+ Member string `protobuf:"bytes,2,opt,name=member,proto3" json:"member,omitempty"`
+ // Role to assign to the new member.
+ Role v2.ProjectRole `protobuf:"varint,3,opt,name=role,proto3,enum=metalstack.api.v2.ProjectRole" json:"role,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *ProjectServiceAddMemberRequest) Reset() {
+ *x = ProjectServiceAddMemberRequest{}
+ mi := &file_metalstack_admin_v2_project_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *ProjectServiceAddMemberRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProjectServiceAddMemberRequest) ProtoMessage() {}
+
+func (x *ProjectServiceAddMemberRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_admin_v2_project_proto_msgTypes[4]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProjectServiceAddMemberRequest.ProtoReflect.Descriptor instead.
+func (*ProjectServiceAddMemberRequest) Descriptor() ([]byte, []int) {
+ return file_metalstack_admin_v2_project_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *ProjectServiceAddMemberRequest) GetProject() string {
+ if x != nil {
+ return x.Project
+ }
+ return ""
+}
+
+func (x *ProjectServiceAddMemberRequest) GetMember() string {
+ if x != nil {
+ return x.Member
+ }
+ return ""
+}
+
+func (x *ProjectServiceAddMemberRequest) GetRole() v2.ProjectRole {
+ if x != nil {
+ return x.Role
+ }
+ return v2.ProjectRole(0)
+}
+
+// ProjectServiceAddMemberResponse is the response payload for the add member request.
+type ProjectServiceAddMemberResponse struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Member is the added project member.
+ Member *v2.ProjectMember `protobuf:"bytes,1,opt,name=member,proto3" json:"member,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *ProjectServiceAddMemberResponse) Reset() {
+ *x = ProjectServiceAddMemberResponse{}
+ mi := &file_metalstack_admin_v2_project_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *ProjectServiceAddMemberResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProjectServiceAddMemberResponse) ProtoMessage() {}
+
+func (x *ProjectServiceAddMemberResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_admin_v2_project_proto_msgTypes[5]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProjectServiceAddMemberResponse.ProtoReflect.Descriptor instead.
+func (*ProjectServiceAddMemberResponse) Descriptor() ([]byte, []int) {
+ return file_metalstack_admin_v2_project_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *ProjectServiceAddMemberResponse) GetMember() *v2.ProjectMember {
+ if x != nil {
+ return x.Member
+ }
+ return nil
+}
+
+// ProjectServiceRemoveMemberRequest is the request payload for removing a member from a project.
+type ProjectServiceRemoveMemberRequest struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Project is the uuid of the project.
+ Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
+ // Login of the member to remove.
+ Member string `protobuf:"bytes,2,opt,name=member,proto3" json:"member,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *ProjectServiceRemoveMemberRequest) Reset() {
+ *x = ProjectServiceRemoveMemberRequest{}
+ mi := &file_metalstack_admin_v2_project_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *ProjectServiceRemoveMemberRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProjectServiceRemoveMemberRequest) ProtoMessage() {}
+
+func (x *ProjectServiceRemoveMemberRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_admin_v2_project_proto_msgTypes[6]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProjectServiceRemoveMemberRequest.ProtoReflect.Descriptor instead.
+func (*ProjectServiceRemoveMemberRequest) Descriptor() ([]byte, []int) {
+ return file_metalstack_admin_v2_project_proto_rawDescGZIP(), []int{6}
+}
+
+func (x *ProjectServiceRemoveMemberRequest) GetProject() string {
+ if x != nil {
+ return x.Project
+ }
+ return ""
+}
+
+func (x *ProjectServiceRemoveMemberRequest) GetMember() string {
+ if x != nil {
+ return x.Member
+ }
+ return ""
+}
+
+// ProjectServiceRemoveMemberResponse is the response payload for the remove member request.
+type ProjectServiceRemoveMemberResponse struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Member is the removed project member.
+ Member *v2.ProjectMember `protobuf:"bytes,1,opt,name=member,proto3" json:"member,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *ProjectServiceRemoveMemberResponse) Reset() {
+ *x = ProjectServiceRemoveMemberResponse{}
+ mi := &file_metalstack_admin_v2_project_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *ProjectServiceRemoveMemberResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProjectServiceRemoveMemberResponse) ProtoMessage() {}
+
+func (x *ProjectServiceRemoveMemberResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_admin_v2_project_proto_msgTypes[7]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProjectServiceRemoveMemberResponse.ProtoReflect.Descriptor instead.
+func (*ProjectServiceRemoveMemberResponse) Descriptor() ([]byte, []int) {
+ return file_metalstack_admin_v2_project_proto_rawDescGZIP(), []int{7}
+}
+
+func (x *ProjectServiceRemoveMemberResponse) GetMember() *v2.ProjectMember {
+ if x != nil {
+ return x.Member
+ }
+ return nil
+}
+
var File_metalstack_admin_v2_project_proto protoreflect.FileDescriptor
const file_metalstack_admin_v2_project_proto_rawDesc = "" +
"\n" +
- "!metalstack/admin/v2/project.proto\x12\x13metalstack.admin.v2\x1a\x1emetalstack/api/v2/common.proto\x1a\x1fmetalstack/api/v2/project.proto\"a\n" +
+ "!metalstack/admin/v2/project.proto\x12\x13metalstack.admin.v2\x1a\x1bbuf/validate/validate.proto\x1a\x1emetalstack/api/v2/common.proto\x1a(metalstack/api/v2/predefined_rules.proto\x1a\x1fmetalstack/api/v2/project.proto\x1a&metalstack/api/v2/project_member.proto\"a\n" +
"\x19ProjectServiceListRequest\x12:\n" +
"\x05query\x18\x01 \x01(\v2\x1f.metalstack.api.v2.ProjectQueryH\x00R\x05query\x88\x01\x01B\b\n" +
"\x06_query\"T\n" +
"\x1aProjectServiceListResponse\x126\n" +
- "\bprojects\x18\x01 \x03(\v2\x1a.metalstack.api.v2.ProjectR\bprojects2\x85\x01\n" +
- "\x0eProjectService\x12s\n" +
+ "\bprojects\x18\x01 \x03(\v2\x1a.metalstack.api.v2.ProjectR\bprojects\"\xb8\x02\n" +
+ "\x1bProjectServiceCreateRequest\x12!\n" +
+ "\x05login\x18\x01 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01R\x05login\x12\x1f\n" +
+ "\x04name\x18\x02 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01R\x04name\x12-\n" +
+ "\vdescription\x18\x03 \x01(\tB\v\xbaH\br\x06ȳ\xae\xb1\x02\x01R\vdescription\x12/\n" +
+ "\n" +
+ "avatar_url\x18\x04 \x01(\tB\v\xbaH\br\x06à³®\xb1\x02\x01H\x00R\tavatarUrl\x88\x01\x01\x121\n" +
+ "\x06labels\x18\x05 \x01(\v2\x19.metalstack.api.v2.LabelsR\x06labels\x12'\n" +
+ "\aproject\x18\x06 \x01(\tB\b\xbaH\x05r\x03\xb0\x01\x01H\x01R\aproject\x88\x01\x01B\r\n" +
+ "\v_avatar_urlB\n" +
+ "\n" +
+ "\b_project\"T\n" +
+ "\x1cProjectServiceCreateResponse\x124\n" +
+ "\aproject\x18\x01 \x01(\v2\x1a.metalstack.api.v2.ProjectR\aproject\"\xa7\x01\n" +
+ "\x1eProjectServiceAddMemberRequest\x12\"\n" +
+ "\aproject\x18\x01 \x01(\tB\b\xbaH\x05r\x03\xb0\x01\x01R\aproject\x12#\n" +
+ "\x06member\x18\x02 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01R\x06member\x12<\n" +
+ "\x04role\x18\x03 \x01(\x0e2\x1e.metalstack.api.v2.ProjectRoleB\b\xbaH\x05\x82\x01\x02\x10\x01R\x04role\"[\n" +
+ "\x1fProjectServiceAddMemberResponse\x128\n" +
+ "\x06member\x18\x01 \x01(\v2 .metalstack.api.v2.ProjectMemberR\x06member\"l\n" +
+ "!ProjectServiceRemoveMemberRequest\x12\"\n" +
+ "\aproject\x18\x01 \x01(\tB\b\xbaH\x05r\x03\xb0\x01\x01R\aproject\x12#\n" +
+ "\x06member\x18\x02 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01R\x06member\"^\n" +
+ "\"ProjectServiceRemoveMemberResponse\x128\n" +
+ "\x06member\x18\x01 \x01(\v2 .metalstack.api.v2.ProjectMemberR\x06member2\x90\x04\n" +
+ "\x0eProjectService\x12x\n" +
+ "\x06Create\x120.metalstack.admin.v2.ProjectServiceCreateRequest\x1a1.metalstack.admin.v2.ProjectServiceCreateResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12s\n" +
"\x04List\x12..metalstack.admin.v2.ProjectServiceListRequest\x1a/.metalstack.admin.v2.ProjectServiceListResponse\"\n" +
- "\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02B\xd0\x01\n" +
+ "\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x12\x81\x01\n" +
+ "\tAddMember\x123.metalstack.admin.v2.ProjectServiceAddMemberRequest\x1a4.metalstack.admin.v2.ProjectServiceAddMemberResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12\x8a\x01\n" +
+ "\fRemoveMember\x126.metalstack.admin.v2.ProjectServiceRemoveMemberRequest\x1a7.metalstack.admin.v2.ProjectServiceRemoveMemberResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01B\xd0\x01\n" +
"\x17com.metalstack.admin.v2B\fProjectProtoP\x01Z9github.com/metal-stack/api/go/metalstack/admin/v2;adminv2\xa2\x02\x03MAX\xaa\x02\x13Metalstack.Admin.V2\xca\x02\x13Metalstack\\Admin\\V2\xe2\x02\x1fMetalstack\\Admin\\V2\\GPBMetadata\xea\x02\x15Metalstack::Admin::V2b\x06proto3"
var (
@@ -141,23 +517,43 @@ func file_metalstack_admin_v2_project_proto_rawDescGZIP() []byte {
return file_metalstack_admin_v2_project_proto_rawDescData
}
-var file_metalstack_admin_v2_project_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
+var file_metalstack_admin_v2_project_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
var file_metalstack_admin_v2_project_proto_goTypes = []any{
- (*ProjectServiceListRequest)(nil), // 0: metalstack.admin.v2.ProjectServiceListRequest
- (*ProjectServiceListResponse)(nil), // 1: metalstack.admin.v2.ProjectServiceListResponse
- (*v2.ProjectQuery)(nil), // 2: metalstack.api.v2.ProjectQuery
- (*v2.Project)(nil), // 3: metalstack.api.v2.Project
+ (*ProjectServiceListRequest)(nil), // 0: metalstack.admin.v2.ProjectServiceListRequest
+ (*ProjectServiceListResponse)(nil), // 1: metalstack.admin.v2.ProjectServiceListResponse
+ (*ProjectServiceCreateRequest)(nil), // 2: metalstack.admin.v2.ProjectServiceCreateRequest
+ (*ProjectServiceCreateResponse)(nil), // 3: metalstack.admin.v2.ProjectServiceCreateResponse
+ (*ProjectServiceAddMemberRequest)(nil), // 4: metalstack.admin.v2.ProjectServiceAddMemberRequest
+ (*ProjectServiceAddMemberResponse)(nil), // 5: metalstack.admin.v2.ProjectServiceAddMemberResponse
+ (*ProjectServiceRemoveMemberRequest)(nil), // 6: metalstack.admin.v2.ProjectServiceRemoveMemberRequest
+ (*ProjectServiceRemoveMemberResponse)(nil), // 7: metalstack.admin.v2.ProjectServiceRemoveMemberResponse
+ (*v2.ProjectQuery)(nil), // 8: metalstack.api.v2.ProjectQuery
+ (*v2.Project)(nil), // 9: metalstack.api.v2.Project
+ (*v2.Labels)(nil), // 10: metalstack.api.v2.Labels
+ (v2.ProjectRole)(0), // 11: metalstack.api.v2.ProjectRole
+ (*v2.ProjectMember)(nil), // 12: metalstack.api.v2.ProjectMember
}
var file_metalstack_admin_v2_project_proto_depIdxs = []int32{
- 2, // 0: metalstack.admin.v2.ProjectServiceListRequest.query:type_name -> metalstack.api.v2.ProjectQuery
- 3, // 1: metalstack.admin.v2.ProjectServiceListResponse.projects:type_name -> metalstack.api.v2.Project
- 0, // 2: metalstack.admin.v2.ProjectService.List:input_type -> metalstack.admin.v2.ProjectServiceListRequest
- 1, // 3: metalstack.admin.v2.ProjectService.List:output_type -> metalstack.admin.v2.ProjectServiceListResponse
- 3, // [3:4] is the sub-list for method output_type
- 2, // [2:3] is the sub-list for method input_type
- 2, // [2:2] is the sub-list for extension type_name
- 2, // [2:2] is the sub-list for extension extendee
- 0, // [0:2] is the sub-list for field type_name
+ 8, // 0: metalstack.admin.v2.ProjectServiceListRequest.query:type_name -> metalstack.api.v2.ProjectQuery
+ 9, // 1: metalstack.admin.v2.ProjectServiceListResponse.projects:type_name -> metalstack.api.v2.Project
+ 10, // 2: metalstack.admin.v2.ProjectServiceCreateRequest.labels:type_name -> metalstack.api.v2.Labels
+ 9, // 3: metalstack.admin.v2.ProjectServiceCreateResponse.project:type_name -> metalstack.api.v2.Project
+ 11, // 4: metalstack.admin.v2.ProjectServiceAddMemberRequest.role:type_name -> metalstack.api.v2.ProjectRole
+ 12, // 5: metalstack.admin.v2.ProjectServiceAddMemberResponse.member:type_name -> metalstack.api.v2.ProjectMember
+ 12, // 6: metalstack.admin.v2.ProjectServiceRemoveMemberResponse.member:type_name -> metalstack.api.v2.ProjectMember
+ 2, // 7: metalstack.admin.v2.ProjectService.Create:input_type -> metalstack.admin.v2.ProjectServiceCreateRequest
+ 0, // 8: metalstack.admin.v2.ProjectService.List:input_type -> metalstack.admin.v2.ProjectServiceListRequest
+ 4, // 9: metalstack.admin.v2.ProjectService.AddMember:input_type -> metalstack.admin.v2.ProjectServiceAddMemberRequest
+ 6, // 10: metalstack.admin.v2.ProjectService.RemoveMember:input_type -> metalstack.admin.v2.ProjectServiceRemoveMemberRequest
+ 3, // 11: metalstack.admin.v2.ProjectService.Create:output_type -> metalstack.admin.v2.ProjectServiceCreateResponse
+ 1, // 12: metalstack.admin.v2.ProjectService.List:output_type -> metalstack.admin.v2.ProjectServiceListResponse
+ 5, // 13: metalstack.admin.v2.ProjectService.AddMember:output_type -> metalstack.admin.v2.ProjectServiceAddMemberResponse
+ 7, // 14: metalstack.admin.v2.ProjectService.RemoveMember:output_type -> metalstack.admin.v2.ProjectServiceRemoveMemberResponse
+ 11, // [11:15] is the sub-list for method output_type
+ 7, // [7:11] is the sub-list for method input_type
+ 7, // [7:7] is the sub-list for extension type_name
+ 7, // [7:7] is the sub-list for extension extendee
+ 0, // [0:7] is the sub-list for field type_name
}
func init() { file_metalstack_admin_v2_project_proto_init() }
@@ -166,13 +562,14 @@ func file_metalstack_admin_v2_project_proto_init() {
return
}
file_metalstack_admin_v2_project_proto_msgTypes[0].OneofWrappers = []any{}
+ file_metalstack_admin_v2_project_proto_msgTypes[2].OneofWrappers = []any{}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: unsafe.Slice(unsafe.StringData(file_metalstack_admin_v2_project_proto_rawDesc), len(file_metalstack_admin_v2_project_proto_rawDesc)),
NumEnums: 0,
- NumMessages: 2,
+ NumMessages: 8,
NumExtensions: 0,
NumServices: 1,
},
diff --git a/go/metalstack/admin/v2/tenant.pb.go b/go/metalstack/admin/v2/tenant.pb.go
index 7c0e7a87..2983636e 100644
--- a/go/metalstack/admin/v2/tenant.pb.go
+++ b/go/metalstack/admin/v2/tenant.pb.go
@@ -35,7 +35,9 @@ type TenantServiceCreateRequest struct {
// AvatarUrl of the tenant.
AvatarUrl *string `protobuf:"bytes,4,opt,name=avatar_url,json=avatarUrl,proto3,oneof" json:"avatar_url,omitempty"`
// Labels on the tenant.
- Labels *v2.Labels `protobuf:"bytes,5,opt,name=labels,proto3" json:"labels,omitempty"`
+ Labels *v2.Labels `protobuf:"bytes,5,opt,name=labels,proto3" json:"labels,omitempty"`
+ // Login of the tenant.
+ Login *string `protobuf:"bytes,6,opt,name=login,proto3,oneof" json:"login,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@@ -105,6 +107,13 @@ func (x *TenantServiceCreateRequest) GetLabels() *v2.Labels {
return nil
}
+func (x *TenantServiceCreateRequest) GetLogin() string {
+ if x != nil && x.Login != nil {
+ return *x.Login
+ }
+ return ""
+}
+
// TenantServiceCreateResponse is the response payload for creating a tenant.
type TenantServiceCreateResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
@@ -319,8 +328,8 @@ func (x *TenantServiceAddMemberRequest) GetRole() v2.TenantRole {
// TenantServiceAddMemberResponse is the response payload for the add member request.
type TenantServiceAddMemberResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
- // TenantMember is the added tenant member.
- TenantMember *v2.TenantMember `protobuf:"bytes,1,opt,name=tenant_member,json=tenantMember,proto3" json:"tenant_member,omitempty"`
+ // Member is the added tenant member.
+ Member *v2.TenantMember `protobuf:"bytes,1,opt,name=member,proto3" json:"member,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@@ -355,9 +364,9 @@ func (*TenantServiceAddMemberResponse) Descriptor() ([]byte, []int) {
return file_metalstack_admin_v2_tenant_proto_rawDescGZIP(), []int{5}
}
-func (x *TenantServiceAddMemberResponse) GetTenantMember() *v2.TenantMember {
+func (x *TenantServiceAddMemberResponse) GetMember() *v2.TenantMember {
if x != nil {
- return x.TenantMember
+ return x.Member
}
return nil
}
@@ -420,8 +429,8 @@ func (x *TenantServiceRemoveMemberRequest) GetMember() string {
// TenantServiceRemoveMemberResponse is the response payload for the remove member request.
type TenantServiceRemoveMemberResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
- // TenantMember is the removed tenant member.
- TenantMember *v2.TenantMember `protobuf:"bytes,1,opt,name=tenant_member,json=tenantMember,proto3" json:"tenant_member,omitempty"`
+ // Member is the removed tenant member.
+ Member *v2.TenantMember `protobuf:"bytes,1,opt,name=member,proto3" json:"member,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@@ -456,9 +465,9 @@ func (*TenantServiceRemoveMemberResponse) Descriptor() ([]byte, []int) {
return file_metalstack_admin_v2_tenant_proto_rawDescGZIP(), []int{7}
}
-func (x *TenantServiceRemoveMemberResponse) GetTenantMember() *v2.TenantMember {
+func (x *TenantServiceRemoveMemberResponse) GetMember() *v2.TenantMember {
if x != nil {
- return x.TenantMember
+ return x.Member
}
return nil
}
@@ -467,17 +476,19 @@ var File_metalstack_admin_v2_tenant_proto protoreflect.FileDescriptor
const file_metalstack_admin_v2_tenant_proto_rawDesc = "" +
"\n" +
- " metalstack/admin/v2/tenant.proto\x12\x13metalstack.admin.v2\x1a\x1bbuf/validate/validate.proto\x1a\x1emetalstack/api/v2/common.proto\x1a(metalstack/api/v2/predefined_rules.proto\x1a\x1emetalstack/api/v2/tenant.proto\"\xa2\x02\n" +
+ " metalstack/admin/v2/tenant.proto\x12\x13metalstack.admin.v2\x1a\x1bbuf/validate/validate.proto\x1a\x1emetalstack/api/v2/common.proto\x1a(metalstack/api/v2/predefined_rules.proto\x1a\x1emetalstack/api/v2/tenant.proto\x1a%metalstack/api/v2/tenant_member.proto\"\xd4\x02\n" +
"\x1aTenantServiceCreateRequest\x12\x1f\n" +
- "\x04name\x18\x01 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01R\x04name\x122\n" +
+ "\x04name\x18\x01 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01R\x04name\x122\n" +
"\vdescription\x18\x02 \x01(\tB\v\xbaH\br\x06ȳ\xae\xb1\x02\x01H\x00R\vdescription\x88\x01\x01\x12\"\n" +
"\x05email\x18\x03 \x01(\tB\a\xbaH\x04r\x02`\x01H\x01R\x05email\x88\x01\x01\x12/\n" +
"\n" +
"avatar_url\x18\x04 \x01(\tB\v\xbaH\br\x06à³®\xb1\x02\x01H\x02R\tavatarUrl\x88\x01\x01\x121\n" +
- "\x06labels\x18\x05 \x01(\v2\x19.metalstack.api.v2.LabelsR\x06labelsB\x0e\n" +
+ "\x06labels\x18\x05 \x01(\v2\x19.metalstack.api.v2.LabelsR\x06labels\x12&\n" +
+ "\x05login\x18\x06 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01H\x03R\x05login\x88\x01\x01B\x0e\n" +
"\f_descriptionB\b\n" +
"\x06_emailB\r\n" +
- "\v_avatar_url\"P\n" +
+ "\v_avatar_urlB\b\n" +
+ "\x06_login\"P\n" +
"\x1bTenantServiceCreateResponse\x121\n" +
"\x06tenant\x18\x01 \x01(\v2\x19.metalstack.api.v2.TenantR\x06tenant\"P\n" +
"\x18TenantServiceListRequest\x124\n" +
@@ -490,14 +501,14 @@ const file_metalstack_admin_v2_tenant_proto_rawDesc = "" +
"\x1dTenantServiceAddMemberRequest\x12#\n" +
"\x06tenant\x18\x01 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01R\x06tenant\x12#\n" +
"\x06member\x18\x02 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01R\x06member\x12;\n" +
- "\x04role\x18\x03 \x01(\x0e2\x1d.metalstack.api.v2.TenantRoleB\b\xbaH\x05\x82\x01\x02\x10\x01R\x04role\"f\n" +
- "\x1eTenantServiceAddMemberResponse\x12D\n" +
- "\rtenant_member\x18\x01 \x01(\v2\x1f.metalstack.api.v2.TenantMemberR\ftenantMember\"l\n" +
+ "\x04role\x18\x03 \x01(\x0e2\x1d.metalstack.api.v2.TenantRoleB\b\xbaH\x05\x82\x01\x02\x10\x01R\x04role\"Y\n" +
+ "\x1eTenantServiceAddMemberResponse\x127\n" +
+ "\x06member\x18\x01 \x01(\v2\x1f.metalstack.api.v2.TenantMemberR\x06member\"l\n" +
" TenantServiceRemoveMemberRequest\x12#\n" +
"\x06tenant\x18\x01 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01R\x06tenant\x12#\n" +
- "\x06member\x18\x02 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01R\x06member\"i\n" +
- "!TenantServiceRemoveMemberResponse\x12D\n" +
- "\rtenant_member\x18\x01 \x01(\v2\x1f.metalstack.api.v2.TenantMemberR\ftenantMember2\x86\x04\n" +
+ "\x06member\x18\x02 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01R\x06member\"\\\n" +
+ "!TenantServiceRemoveMemberResponse\x127\n" +
+ "\x06member\x18\x01 \x01(\v2\x1f.metalstack.api.v2.TenantMemberR\x06member2\x86\x04\n" +
"\rTenantService\x12v\n" +
"\x06Create\x12/.metalstack.admin.v2.TenantServiceCreateRequest\x1a0.metalstack.admin.v2.TenantServiceCreateResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12q\n" +
"\x04List\x12-.metalstack.admin.v2.TenantServiceListRequest\x1a..metalstack.admin.v2.TenantServiceListResponse\"\n" +
@@ -540,8 +551,8 @@ var file_metalstack_admin_v2_tenant_proto_depIdxs = []int32{
10, // 2: metalstack.admin.v2.TenantServiceListRequest.query:type_name -> metalstack.api.v2.TenantQuery
9, // 3: metalstack.admin.v2.TenantServiceListResponse.tenants:type_name -> metalstack.api.v2.Tenant
11, // 4: metalstack.admin.v2.TenantServiceAddMemberRequest.role:type_name -> metalstack.api.v2.TenantRole
- 12, // 5: metalstack.admin.v2.TenantServiceAddMemberResponse.tenant_member:type_name -> metalstack.api.v2.TenantMember
- 12, // 6: metalstack.admin.v2.TenantServiceRemoveMemberResponse.tenant_member:type_name -> metalstack.api.v2.TenantMember
+ 12, // 5: metalstack.admin.v2.TenantServiceAddMemberResponse.member:type_name -> metalstack.api.v2.TenantMember
+ 12, // 6: metalstack.admin.v2.TenantServiceRemoveMemberResponse.member:type_name -> metalstack.api.v2.TenantMember
0, // 7: metalstack.admin.v2.TenantService.Create:input_type -> metalstack.admin.v2.TenantServiceCreateRequest
2, // 8: metalstack.admin.v2.TenantService.List:input_type -> metalstack.admin.v2.TenantServiceListRequest
4, // 9: metalstack.admin.v2.TenantService.AddMember:input_type -> metalstack.admin.v2.TenantServiceAddMemberRequest
diff --git a/go/metalstack/api/v2/apiv2connect/project.connect.go b/go/metalstack/api/v2/apiv2connect/project.connect.go
index 74e16577..343d8296 100644
--- a/go/metalstack/api/v2/apiv2connect/project.connect.go
+++ b/go/metalstack/api/v2/apiv2connect/project.connect.go
@@ -43,17 +43,6 @@ const (
ProjectServiceDeleteProcedure = "/metalstack.api.v2.ProjectService/Delete"
// ProjectServiceUpdateProcedure is the fully-qualified name of the ProjectService's Update RPC.
ProjectServiceUpdateProcedure = "/metalstack.api.v2.ProjectService/Update"
- // ProjectServiceLeaveProcedure is the fully-qualified name of the ProjectService's Leave RPC.
- ProjectServiceLeaveProcedure = "/metalstack.api.v2.ProjectService/Leave"
- // ProjectServiceAddMemberProcedure is the fully-qualified name of the ProjectService's AddMember
- // RPC.
- ProjectServiceAddMemberProcedure = "/metalstack.api.v2.ProjectService/AddMember"
- // ProjectServiceRemoveMemberProcedure is the fully-qualified name of the ProjectService's
- // RemoveMember RPC.
- ProjectServiceRemoveMemberProcedure = "/metalstack.api.v2.ProjectService/RemoveMember"
- // ProjectServiceUpdateMemberProcedure is the fully-qualified name of the ProjectService's
- // UpdateMember RPC.
- ProjectServiceUpdateMemberProcedure = "/metalstack.api.v2.ProjectService/UpdateMember"
// ProjectServiceInviteProcedure is the fully-qualified name of the ProjectService's Invite RPC.
ProjectServiceInviteProcedure = "/metalstack.api.v2.ProjectService/Invite"
// ProjectServiceInviteAcceptProcedure is the fully-qualified name of the ProjectService's
@@ -82,14 +71,6 @@ type ProjectServiceClient interface {
Delete(context.Context, *v2.ProjectServiceDeleteRequest) (*v2.ProjectServiceDeleteResponse, error)
// Update a project.
Update(context.Context, *v2.ProjectServiceUpdateRequest) (*v2.ProjectServiceUpdateResponse, error)
- // Leave project.
- Leave(context.Context, *v2.ProjectServiceLeaveRequest) (*v2.ProjectServiceLeaveResponse, error)
- // AddMember adds a user to a project.
- AddMember(context.Context, *v2.ProjectServiceAddMemberRequest) (*v2.ProjectServiceAddMemberResponse, error)
- // RemoveMember removes a user from a project.
- RemoveMember(context.Context, *v2.ProjectServiceRemoveMemberRequest) (*v2.ProjectServiceRemoveMemberResponse, error)
- // UpdateMember updates a user for a project.
- UpdateMember(context.Context, *v2.ProjectServiceUpdateMemberRequest) (*v2.ProjectServiceUpdateMemberResponse, error)
// Invite a user to a project.
Invite(context.Context, *v2.ProjectServiceInviteRequest) (*v2.ProjectServiceInviteResponse, error)
// InviteAccept is called by a user to accept an invitation.
@@ -143,30 +124,6 @@ func NewProjectServiceClient(httpClient connect.HTTPClient, baseURL string, opts
connect.WithSchema(projectServiceMethods.ByName("Update")),
connect.WithClientOptions(opts...),
),
- leave: connect.NewClient[v2.ProjectServiceLeaveRequest, v2.ProjectServiceLeaveResponse](
- httpClient,
- baseURL+ProjectServiceLeaveProcedure,
- connect.WithSchema(projectServiceMethods.ByName("Leave")),
- connect.WithClientOptions(opts...),
- ),
- addMember: connect.NewClient[v2.ProjectServiceAddMemberRequest, v2.ProjectServiceAddMemberResponse](
- httpClient,
- baseURL+ProjectServiceAddMemberProcedure,
- connect.WithSchema(projectServiceMethods.ByName("AddMember")),
- connect.WithClientOptions(opts...),
- ),
- removeMember: connect.NewClient[v2.ProjectServiceRemoveMemberRequest, v2.ProjectServiceRemoveMemberResponse](
- httpClient,
- baseURL+ProjectServiceRemoveMemberProcedure,
- connect.WithSchema(projectServiceMethods.ByName("RemoveMember")),
- connect.WithClientOptions(opts...),
- ),
- updateMember: connect.NewClient[v2.ProjectServiceUpdateMemberRequest, v2.ProjectServiceUpdateMemberResponse](
- httpClient,
- baseURL+ProjectServiceUpdateMemberProcedure,
- connect.WithSchema(projectServiceMethods.ByName("UpdateMember")),
- connect.WithClientOptions(opts...),
- ),
invite: connect.NewClient[v2.ProjectServiceInviteRequest, v2.ProjectServiceInviteResponse](
httpClient,
baseURL+ProjectServiceInviteProcedure,
@@ -207,10 +164,6 @@ type projectServiceClient struct {
create *connect.Client[v2.ProjectServiceCreateRequest, v2.ProjectServiceCreateResponse]
delete *connect.Client[v2.ProjectServiceDeleteRequest, v2.ProjectServiceDeleteResponse]
update *connect.Client[v2.ProjectServiceUpdateRequest, v2.ProjectServiceUpdateResponse]
- leave *connect.Client[v2.ProjectServiceLeaveRequest, v2.ProjectServiceLeaveResponse]
- addMember *connect.Client[v2.ProjectServiceAddMemberRequest, v2.ProjectServiceAddMemberResponse]
- removeMember *connect.Client[v2.ProjectServiceRemoveMemberRequest, v2.ProjectServiceRemoveMemberResponse]
- updateMember *connect.Client[v2.ProjectServiceUpdateMemberRequest, v2.ProjectServiceUpdateMemberResponse]
invite *connect.Client[v2.ProjectServiceInviteRequest, v2.ProjectServiceInviteResponse]
inviteAccept *connect.Client[v2.ProjectServiceInviteAcceptRequest, v2.ProjectServiceInviteAcceptResponse]
inviteDelete *connect.Client[v2.ProjectServiceInviteDeleteRequest, v2.ProjectServiceInviteDeleteResponse]
@@ -263,42 +216,6 @@ func (c *projectServiceClient) Update(ctx context.Context, req *v2.ProjectServic
return nil, err
}
-// Leave calls metalstack.api.v2.ProjectService.Leave.
-func (c *projectServiceClient) Leave(ctx context.Context, req *v2.ProjectServiceLeaveRequest) (*v2.ProjectServiceLeaveResponse, error) {
- response, err := c.leave.CallUnary(ctx, connect.NewRequest(req))
- if response != nil {
- return response.Msg, err
- }
- return nil, err
-}
-
-// AddMember calls metalstack.api.v2.ProjectService.AddMember.
-func (c *projectServiceClient) AddMember(ctx context.Context, req *v2.ProjectServiceAddMemberRequest) (*v2.ProjectServiceAddMemberResponse, error) {
- response, err := c.addMember.CallUnary(ctx, connect.NewRequest(req))
- if response != nil {
- return response.Msg, err
- }
- return nil, err
-}
-
-// RemoveMember calls metalstack.api.v2.ProjectService.RemoveMember.
-func (c *projectServiceClient) RemoveMember(ctx context.Context, req *v2.ProjectServiceRemoveMemberRequest) (*v2.ProjectServiceRemoveMemberResponse, error) {
- response, err := c.removeMember.CallUnary(ctx, connect.NewRequest(req))
- if response != nil {
- return response.Msg, err
- }
- return nil, err
-}
-
-// UpdateMember calls metalstack.api.v2.ProjectService.UpdateMember.
-func (c *projectServiceClient) UpdateMember(ctx context.Context, req *v2.ProjectServiceUpdateMemberRequest) (*v2.ProjectServiceUpdateMemberResponse, error) {
- response, err := c.updateMember.CallUnary(ctx, connect.NewRequest(req))
- if response != nil {
- return response.Msg, err
- }
- return nil, err
-}
-
// Invite calls metalstack.api.v2.ProjectService.Invite.
func (c *projectServiceClient) Invite(ctx context.Context, req *v2.ProjectServiceInviteRequest) (*v2.ProjectServiceInviteResponse, error) {
response, err := c.invite.CallUnary(ctx, connect.NewRequest(req))
@@ -356,14 +273,6 @@ type ProjectServiceHandler interface {
Delete(context.Context, *v2.ProjectServiceDeleteRequest) (*v2.ProjectServiceDeleteResponse, error)
// Update a project.
Update(context.Context, *v2.ProjectServiceUpdateRequest) (*v2.ProjectServiceUpdateResponse, error)
- // Leave project.
- Leave(context.Context, *v2.ProjectServiceLeaveRequest) (*v2.ProjectServiceLeaveResponse, error)
- // AddMember adds a user to a project.
- AddMember(context.Context, *v2.ProjectServiceAddMemberRequest) (*v2.ProjectServiceAddMemberResponse, error)
- // RemoveMember removes a user from a project.
- RemoveMember(context.Context, *v2.ProjectServiceRemoveMemberRequest) (*v2.ProjectServiceRemoveMemberResponse, error)
- // UpdateMember updates a user for a project.
- UpdateMember(context.Context, *v2.ProjectServiceUpdateMemberRequest) (*v2.ProjectServiceUpdateMemberResponse, error)
// Invite a user to a project.
Invite(context.Context, *v2.ProjectServiceInviteRequest) (*v2.ProjectServiceInviteResponse, error)
// InviteAccept is called by a user to accept an invitation.
@@ -413,30 +322,6 @@ func NewProjectServiceHandler(svc ProjectServiceHandler, opts ...connect.Handler
connect.WithSchema(projectServiceMethods.ByName("Update")),
connect.WithHandlerOptions(opts...),
)
- projectServiceLeaveHandler := connect.NewUnaryHandlerSimple(
- ProjectServiceLeaveProcedure,
- svc.Leave,
- connect.WithSchema(projectServiceMethods.ByName("Leave")),
- connect.WithHandlerOptions(opts...),
- )
- projectServiceAddMemberHandler := connect.NewUnaryHandlerSimple(
- ProjectServiceAddMemberProcedure,
- svc.AddMember,
- connect.WithSchema(projectServiceMethods.ByName("AddMember")),
- connect.WithHandlerOptions(opts...),
- )
- projectServiceRemoveMemberHandler := connect.NewUnaryHandlerSimple(
- ProjectServiceRemoveMemberProcedure,
- svc.RemoveMember,
- connect.WithSchema(projectServiceMethods.ByName("RemoveMember")),
- connect.WithHandlerOptions(opts...),
- )
- projectServiceUpdateMemberHandler := connect.NewUnaryHandlerSimple(
- ProjectServiceUpdateMemberProcedure,
- svc.UpdateMember,
- connect.WithSchema(projectServiceMethods.ByName("UpdateMember")),
- connect.WithHandlerOptions(opts...),
- )
projectServiceInviteHandler := connect.NewUnaryHandlerSimple(
ProjectServiceInviteProcedure,
svc.Invite,
@@ -479,14 +364,6 @@ func NewProjectServiceHandler(svc ProjectServiceHandler, opts ...connect.Handler
projectServiceDeleteHandler.ServeHTTP(w, r)
case ProjectServiceUpdateProcedure:
projectServiceUpdateHandler.ServeHTTP(w, r)
- case ProjectServiceLeaveProcedure:
- projectServiceLeaveHandler.ServeHTTP(w, r)
- case ProjectServiceAddMemberProcedure:
- projectServiceAddMemberHandler.ServeHTTP(w, r)
- case ProjectServiceRemoveMemberProcedure:
- projectServiceRemoveMemberHandler.ServeHTTP(w, r)
- case ProjectServiceUpdateMemberProcedure:
- projectServiceUpdateMemberHandler.ServeHTTP(w, r)
case ProjectServiceInviteProcedure:
projectServiceInviteHandler.ServeHTTP(w, r)
case ProjectServiceInviteAcceptProcedure:
@@ -526,22 +403,6 @@ func (UnimplementedProjectServiceHandler) Update(context.Context, *v2.ProjectSer
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.api.v2.ProjectService.Update is not implemented"))
}
-func (UnimplementedProjectServiceHandler) Leave(context.Context, *v2.ProjectServiceLeaveRequest) (*v2.ProjectServiceLeaveResponse, error) {
- return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.api.v2.ProjectService.Leave is not implemented"))
-}
-
-func (UnimplementedProjectServiceHandler) AddMember(context.Context, *v2.ProjectServiceAddMemberRequest) (*v2.ProjectServiceAddMemberResponse, error) {
- return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.api.v2.ProjectService.AddMember is not implemented"))
-}
-
-func (UnimplementedProjectServiceHandler) RemoveMember(context.Context, *v2.ProjectServiceRemoveMemberRequest) (*v2.ProjectServiceRemoveMemberResponse, error) {
- return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.api.v2.ProjectService.RemoveMember is not implemented"))
-}
-
-func (UnimplementedProjectServiceHandler) UpdateMember(context.Context, *v2.ProjectServiceUpdateMemberRequest) (*v2.ProjectServiceUpdateMemberResponse, error) {
- return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.api.v2.ProjectService.UpdateMember is not implemented"))
-}
-
func (UnimplementedProjectServiceHandler) Invite(context.Context, *v2.ProjectServiceInviteRequest) (*v2.ProjectServiceInviteResponse, error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.api.v2.ProjectService.Invite is not implemented"))
}
diff --git a/go/metalstack/api/v2/apiv2connect/project_member.connect.go b/go/metalstack/api/v2/apiv2connect/project_member.connect.go
new file mode 100644
index 00000000..df8e3175
--- /dev/null
+++ b/go/metalstack/api/v2/apiv2connect/project_member.connect.go
@@ -0,0 +1,291 @@
+// Code generated by protoc-gen-connect-go. DO NOT EDIT.
+//
+// Source: metalstack/api/v2/project_member.proto
+
+package apiv2connect
+
+import (
+ connect "connectrpc.com/connect"
+ context "context"
+ errors "errors"
+ v2 "github.com/metal-stack/api/go/metalstack/api/v2"
+ http "net/http"
+ strings "strings"
+)
+
+// This is a compile-time assertion to ensure that this generated file and the connect package are
+// compatible. If you get a compiler error that this constant is not defined, this code was
+// generated with a version of connect newer than the one compiled into your binary. You can fix the
+// problem by either regenerating this code with an older version of connect or updating the connect
+// version compiled into your binary.
+const _ = connect.IsAtLeastVersion1_13_0
+
+const (
+ // ProjectMemberServiceName is the fully-qualified name of the ProjectMemberService service.
+ ProjectMemberServiceName = "metalstack.api.v2.ProjectMemberService"
+)
+
+// These constants are the fully-qualified names of the RPCs defined in this package. They're
+// exposed at runtime as Spec.Procedure and as the final two segments of the HTTP route.
+//
+// Note that these are different from the fully-qualified method names used by
+// google.golang.org/protobuf/reflect/protoreflect. To convert from these constants to
+// reflection-formatted method names, remove the leading slash and convert the remaining slash to a
+// period.
+const (
+ // ProjectMemberServiceListProcedure is the fully-qualified name of the ProjectMemberService's List
+ // RPC.
+ ProjectMemberServiceListProcedure = "/metalstack.api.v2.ProjectMemberService/List"
+ // ProjectMemberServiceGetProcedure is the fully-qualified name of the ProjectMemberService's Get
+ // RPC.
+ ProjectMemberServiceGetProcedure = "/metalstack.api.v2.ProjectMemberService/Get"
+ // ProjectMemberServiceCreateProcedure is the fully-qualified name of the ProjectMemberService's
+ // Create RPC.
+ ProjectMemberServiceCreateProcedure = "/metalstack.api.v2.ProjectMemberService/Create"
+ // ProjectMemberServiceDeleteProcedure is the fully-qualified name of the ProjectMemberService's
+ // Delete RPC.
+ ProjectMemberServiceDeleteProcedure = "/metalstack.api.v2.ProjectMemberService/Delete"
+ // ProjectMemberServiceUpdateProcedure is the fully-qualified name of the ProjectMemberService's
+ // Update RPC.
+ ProjectMemberServiceUpdateProcedure = "/metalstack.api.v2.ProjectMemberService/Update"
+ // ProjectMemberServiceLeaveProcedure is the fully-qualified name of the ProjectMemberService's
+ // Leave RPC.
+ ProjectMemberServiceLeaveProcedure = "/metalstack.api.v2.ProjectMemberService/Leave"
+)
+
+// ProjectMemberServiceClient is a client for the metalstack.api.v2.ProjectMemberService service.
+type ProjectMemberServiceClient interface {
+ // Returns the list of project members.
+ List(context.Context, *v2.ProjectMemberServiceListRequest) (*v2.ProjectMemberServiceListResponse, error)
+ // Returns the project member of the project.
+ Get(context.Context, *v2.ProjectMemberServiceGetRequest) (*v2.ProjectMemberServiceGetResponse, error)
+ // Create a project member.
+ Create(context.Context, *v2.ProjectMemberServiceCreateRequest) (*v2.ProjectMemberServiceCreateResponse, error)
+ // Delete a project member.
+ Delete(context.Context, *v2.ProjectMemberServiceDeleteRequest) (*v2.ProjectMemberServiceDeleteResponse, error)
+ // Update a project member.
+ Update(context.Context, *v2.ProjectMemberServiceUpdateRequest) (*v2.ProjectMemberServiceUpdateResponse, error)
+ // Leave a project.
+ Leave(context.Context, *v2.ProjectMemberServiceLeaveRequest) (*v2.ProjectMemberServiceLeaveResponse, error)
+}
+
+// NewProjectMemberServiceClient constructs a client for the metalstack.api.v2.ProjectMemberService
+// service. By default, it uses the Connect protocol with the binary Protobuf Codec, asks for
+// gzipped responses, and sends uncompressed requests. To use the gRPC or gRPC-Web protocols, supply
+// the connect.WithGRPC() or connect.WithGRPCWeb() options.
+//
+// The URL supplied here should be the base URL for the Connect or gRPC server (for example,
+// http://api.acme.com or https://acme.com/grpc).
+func NewProjectMemberServiceClient(httpClient connect.HTTPClient, baseURL string, opts ...connect.ClientOption) ProjectMemberServiceClient {
+ baseURL = strings.TrimRight(baseURL, "/")
+ projectMemberServiceMethods := v2.File_metalstack_api_v2_project_member_proto.Services().ByName("ProjectMemberService").Methods()
+ return &projectMemberServiceClient{
+ list: connect.NewClient[v2.ProjectMemberServiceListRequest, v2.ProjectMemberServiceListResponse](
+ httpClient,
+ baseURL+ProjectMemberServiceListProcedure,
+ connect.WithSchema(projectMemberServiceMethods.ByName("List")),
+ connect.WithClientOptions(opts...),
+ ),
+ get: connect.NewClient[v2.ProjectMemberServiceGetRequest, v2.ProjectMemberServiceGetResponse](
+ httpClient,
+ baseURL+ProjectMemberServiceGetProcedure,
+ connect.WithSchema(projectMemberServiceMethods.ByName("Get")),
+ connect.WithClientOptions(opts...),
+ ),
+ create: connect.NewClient[v2.ProjectMemberServiceCreateRequest, v2.ProjectMemberServiceCreateResponse](
+ httpClient,
+ baseURL+ProjectMemberServiceCreateProcedure,
+ connect.WithSchema(projectMemberServiceMethods.ByName("Create")),
+ connect.WithClientOptions(opts...),
+ ),
+ delete: connect.NewClient[v2.ProjectMemberServiceDeleteRequest, v2.ProjectMemberServiceDeleteResponse](
+ httpClient,
+ baseURL+ProjectMemberServiceDeleteProcedure,
+ connect.WithSchema(projectMemberServiceMethods.ByName("Delete")),
+ connect.WithClientOptions(opts...),
+ ),
+ update: connect.NewClient[v2.ProjectMemberServiceUpdateRequest, v2.ProjectMemberServiceUpdateResponse](
+ httpClient,
+ baseURL+ProjectMemberServiceUpdateProcedure,
+ connect.WithSchema(projectMemberServiceMethods.ByName("Update")),
+ connect.WithClientOptions(opts...),
+ ),
+ leave: connect.NewClient[v2.ProjectMemberServiceLeaveRequest, v2.ProjectMemberServiceLeaveResponse](
+ httpClient,
+ baseURL+ProjectMemberServiceLeaveProcedure,
+ connect.WithSchema(projectMemberServiceMethods.ByName("Leave")),
+ connect.WithClientOptions(opts...),
+ ),
+ }
+}
+
+// projectMemberServiceClient implements ProjectMemberServiceClient.
+type projectMemberServiceClient struct {
+ list *connect.Client[v2.ProjectMemberServiceListRequest, v2.ProjectMemberServiceListResponse]
+ get *connect.Client[v2.ProjectMemberServiceGetRequest, v2.ProjectMemberServiceGetResponse]
+ create *connect.Client[v2.ProjectMemberServiceCreateRequest, v2.ProjectMemberServiceCreateResponse]
+ delete *connect.Client[v2.ProjectMemberServiceDeleteRequest, v2.ProjectMemberServiceDeleteResponse]
+ update *connect.Client[v2.ProjectMemberServiceUpdateRequest, v2.ProjectMemberServiceUpdateResponse]
+ leave *connect.Client[v2.ProjectMemberServiceLeaveRequest, v2.ProjectMemberServiceLeaveResponse]
+}
+
+// List calls metalstack.api.v2.ProjectMemberService.List.
+func (c *projectMemberServiceClient) List(ctx context.Context, req *v2.ProjectMemberServiceListRequest) (*v2.ProjectMemberServiceListResponse, error) {
+ response, err := c.list.CallUnary(ctx, connect.NewRequest(req))
+ if response != nil {
+ return response.Msg, err
+ }
+ return nil, err
+}
+
+// Get calls metalstack.api.v2.ProjectMemberService.Get.
+func (c *projectMemberServiceClient) Get(ctx context.Context, req *v2.ProjectMemberServiceGetRequest) (*v2.ProjectMemberServiceGetResponse, error) {
+ response, err := c.get.CallUnary(ctx, connect.NewRequest(req))
+ if response != nil {
+ return response.Msg, err
+ }
+ return nil, err
+}
+
+// Create calls metalstack.api.v2.ProjectMemberService.Create.
+func (c *projectMemberServiceClient) Create(ctx context.Context, req *v2.ProjectMemberServiceCreateRequest) (*v2.ProjectMemberServiceCreateResponse, error) {
+ response, err := c.create.CallUnary(ctx, connect.NewRequest(req))
+ if response != nil {
+ return response.Msg, err
+ }
+ return nil, err
+}
+
+// Delete calls metalstack.api.v2.ProjectMemberService.Delete.
+func (c *projectMemberServiceClient) Delete(ctx context.Context, req *v2.ProjectMemberServiceDeleteRequest) (*v2.ProjectMemberServiceDeleteResponse, error) {
+ response, err := c.delete.CallUnary(ctx, connect.NewRequest(req))
+ if response != nil {
+ return response.Msg, err
+ }
+ return nil, err
+}
+
+// Update calls metalstack.api.v2.ProjectMemberService.Update.
+func (c *projectMemberServiceClient) Update(ctx context.Context, req *v2.ProjectMemberServiceUpdateRequest) (*v2.ProjectMemberServiceUpdateResponse, error) {
+ response, err := c.update.CallUnary(ctx, connect.NewRequest(req))
+ if response != nil {
+ return response.Msg, err
+ }
+ return nil, err
+}
+
+// Leave calls metalstack.api.v2.ProjectMemberService.Leave.
+func (c *projectMemberServiceClient) Leave(ctx context.Context, req *v2.ProjectMemberServiceLeaveRequest) (*v2.ProjectMemberServiceLeaveResponse, error) {
+ response, err := c.leave.CallUnary(ctx, connect.NewRequest(req))
+ if response != nil {
+ return response.Msg, err
+ }
+ return nil, err
+}
+
+// ProjectMemberServiceHandler is an implementation of the metalstack.api.v2.ProjectMemberService
+// service.
+type ProjectMemberServiceHandler interface {
+ // Returns the list of project members.
+ List(context.Context, *v2.ProjectMemberServiceListRequest) (*v2.ProjectMemberServiceListResponse, error)
+ // Returns the project member of the project.
+ Get(context.Context, *v2.ProjectMemberServiceGetRequest) (*v2.ProjectMemberServiceGetResponse, error)
+ // Create a project member.
+ Create(context.Context, *v2.ProjectMemberServiceCreateRequest) (*v2.ProjectMemberServiceCreateResponse, error)
+ // Delete a project member.
+ Delete(context.Context, *v2.ProjectMemberServiceDeleteRequest) (*v2.ProjectMemberServiceDeleteResponse, error)
+ // Update a project member.
+ Update(context.Context, *v2.ProjectMemberServiceUpdateRequest) (*v2.ProjectMemberServiceUpdateResponse, error)
+ // Leave a project.
+ Leave(context.Context, *v2.ProjectMemberServiceLeaveRequest) (*v2.ProjectMemberServiceLeaveResponse, error)
+}
+
+// NewProjectMemberServiceHandler builds an HTTP handler from the service implementation. It returns
+// the path on which to mount the handler and the handler itself.
+//
+// By default, handlers support the Connect, gRPC, and gRPC-Web protocols with the binary Protobuf
+// and JSON codecs. They also support gzip compression.
+func NewProjectMemberServiceHandler(svc ProjectMemberServiceHandler, opts ...connect.HandlerOption) (string, http.Handler) {
+ projectMemberServiceMethods := v2.File_metalstack_api_v2_project_member_proto.Services().ByName("ProjectMemberService").Methods()
+ projectMemberServiceListHandler := connect.NewUnaryHandlerSimple(
+ ProjectMemberServiceListProcedure,
+ svc.List,
+ connect.WithSchema(projectMemberServiceMethods.ByName("List")),
+ connect.WithHandlerOptions(opts...),
+ )
+ projectMemberServiceGetHandler := connect.NewUnaryHandlerSimple(
+ ProjectMemberServiceGetProcedure,
+ svc.Get,
+ connect.WithSchema(projectMemberServiceMethods.ByName("Get")),
+ connect.WithHandlerOptions(opts...),
+ )
+ projectMemberServiceCreateHandler := connect.NewUnaryHandlerSimple(
+ ProjectMemberServiceCreateProcedure,
+ svc.Create,
+ connect.WithSchema(projectMemberServiceMethods.ByName("Create")),
+ connect.WithHandlerOptions(opts...),
+ )
+ projectMemberServiceDeleteHandler := connect.NewUnaryHandlerSimple(
+ ProjectMemberServiceDeleteProcedure,
+ svc.Delete,
+ connect.WithSchema(projectMemberServiceMethods.ByName("Delete")),
+ connect.WithHandlerOptions(opts...),
+ )
+ projectMemberServiceUpdateHandler := connect.NewUnaryHandlerSimple(
+ ProjectMemberServiceUpdateProcedure,
+ svc.Update,
+ connect.WithSchema(projectMemberServiceMethods.ByName("Update")),
+ connect.WithHandlerOptions(opts...),
+ )
+ projectMemberServiceLeaveHandler := connect.NewUnaryHandlerSimple(
+ ProjectMemberServiceLeaveProcedure,
+ svc.Leave,
+ connect.WithSchema(projectMemberServiceMethods.ByName("Leave")),
+ connect.WithHandlerOptions(opts...),
+ )
+ return "/metalstack.api.v2.ProjectMemberService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+ switch r.URL.Path {
+ case ProjectMemberServiceListProcedure:
+ projectMemberServiceListHandler.ServeHTTP(w, r)
+ case ProjectMemberServiceGetProcedure:
+ projectMemberServiceGetHandler.ServeHTTP(w, r)
+ case ProjectMemberServiceCreateProcedure:
+ projectMemberServiceCreateHandler.ServeHTTP(w, r)
+ case ProjectMemberServiceDeleteProcedure:
+ projectMemberServiceDeleteHandler.ServeHTTP(w, r)
+ case ProjectMemberServiceUpdateProcedure:
+ projectMemberServiceUpdateHandler.ServeHTTP(w, r)
+ case ProjectMemberServiceLeaveProcedure:
+ projectMemberServiceLeaveHandler.ServeHTTP(w, r)
+ default:
+ http.NotFound(w, r)
+ }
+ })
+}
+
+// UnimplementedProjectMemberServiceHandler returns CodeUnimplemented from all methods.
+type UnimplementedProjectMemberServiceHandler struct{}
+
+func (UnimplementedProjectMemberServiceHandler) List(context.Context, *v2.ProjectMemberServiceListRequest) (*v2.ProjectMemberServiceListResponse, error) {
+ return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.api.v2.ProjectMemberService.List is not implemented"))
+}
+
+func (UnimplementedProjectMemberServiceHandler) Get(context.Context, *v2.ProjectMemberServiceGetRequest) (*v2.ProjectMemberServiceGetResponse, error) {
+ return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.api.v2.ProjectMemberService.Get is not implemented"))
+}
+
+func (UnimplementedProjectMemberServiceHandler) Create(context.Context, *v2.ProjectMemberServiceCreateRequest) (*v2.ProjectMemberServiceCreateResponse, error) {
+ return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.api.v2.ProjectMemberService.Create is not implemented"))
+}
+
+func (UnimplementedProjectMemberServiceHandler) Delete(context.Context, *v2.ProjectMemberServiceDeleteRequest) (*v2.ProjectMemberServiceDeleteResponse, error) {
+ return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.api.v2.ProjectMemberService.Delete is not implemented"))
+}
+
+func (UnimplementedProjectMemberServiceHandler) Update(context.Context, *v2.ProjectMemberServiceUpdateRequest) (*v2.ProjectMemberServiceUpdateResponse, error) {
+ return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.api.v2.ProjectMemberService.Update is not implemented"))
+}
+
+func (UnimplementedProjectMemberServiceHandler) Leave(context.Context, *v2.ProjectMemberServiceLeaveRequest) (*v2.ProjectMemberServiceLeaveResponse, error) {
+ return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.api.v2.ProjectMemberService.Leave is not implemented"))
+}
diff --git a/go/metalstack/api/v2/apiv2connect/tenant.connect.go b/go/metalstack/api/v2/apiv2connect/tenant.connect.go
index 9b99279a..1c209907 100644
--- a/go/metalstack/api/v2/apiv2connect/tenant.connect.go
+++ b/go/metalstack/api/v2/apiv2connect/tenant.connect.go
@@ -43,16 +43,6 @@ const (
TenantServiceUpdateProcedure = "/metalstack.api.v2.TenantService/Update"
// TenantServiceDeleteProcedure is the fully-qualified name of the TenantService's Delete RPC.
TenantServiceDeleteProcedure = "/metalstack.api.v2.TenantService/Delete"
- // TenantServiceLeaveProcedure is the fully-qualified name of the TenantService's Leave RPC.
- TenantServiceLeaveProcedure = "/metalstack.api.v2.TenantService/Leave"
- // TenantServiceAddMemberProcedure is the fully-qualified name of the TenantService's AddMember RPC.
- TenantServiceAddMemberProcedure = "/metalstack.api.v2.TenantService/AddMember"
- // TenantServiceRemoveMemberProcedure is the fully-qualified name of the TenantService's
- // RemoveMember RPC.
- TenantServiceRemoveMemberProcedure = "/metalstack.api.v2.TenantService/RemoveMember"
- // TenantServiceUpdateMemberProcedure is the fully-qualified name of the TenantService's
- // UpdateMember RPC.
- TenantServiceUpdateMemberProcedure = "/metalstack.api.v2.TenantService/UpdateMember"
// TenantServiceInviteProcedure is the fully-qualified name of the TenantService's Invite RPC.
TenantServiceInviteProcedure = "/metalstack.api.v2.TenantService/Invite"
// TenantServiceInviteAcceptProcedure is the fully-qualified name of the TenantService's
@@ -80,14 +70,6 @@ type TenantServiceClient interface {
Update(context.Context, *v2.TenantServiceUpdateRequest) (*v2.TenantServiceUpdateResponse, error)
// Delete a tenant.
Delete(context.Context, *v2.TenantServiceDeleteRequest) (*v2.TenantServiceDeleteResponse, error)
- // Leave removes a member from a tenant.
- Leave(context.Context, *v2.TenantServiceLeaveRequest) (*v2.TenantServiceLeaveResponse, error)
- // AddMember adds a member to a tenant.
- AddMember(context.Context, *v2.TenantServiceAddMemberRequest) (*v2.TenantServiceAddMemberResponse, error)
- // RemoveMember removes a member from a tenant.
- RemoveMember(context.Context, *v2.TenantServiceRemoveMemberRequest) (*v2.TenantServiceRemoveMemberResponse, error)
- // UpdateMember update a member of a tenant.
- UpdateMember(context.Context, *v2.TenantServiceUpdateMemberRequest) (*v2.TenantServiceUpdateMemberResponse, error)
// Invite a user to a tenant.
Invite(context.Context, *v2.TenantServiceInviteRequest) (*v2.TenantServiceInviteResponse, error)
// InviteAccept is called from a user to accept an invitation.
@@ -141,30 +123,6 @@ func NewTenantServiceClient(httpClient connect.HTTPClient, baseURL string, opts
connect.WithSchema(tenantServiceMethods.ByName("Delete")),
connect.WithClientOptions(opts...),
),
- leave: connect.NewClient[v2.TenantServiceLeaveRequest, v2.TenantServiceLeaveResponse](
- httpClient,
- baseURL+TenantServiceLeaveProcedure,
- connect.WithSchema(tenantServiceMethods.ByName("Leave")),
- connect.WithClientOptions(opts...),
- ),
- addMember: connect.NewClient[v2.TenantServiceAddMemberRequest, v2.TenantServiceAddMemberResponse](
- httpClient,
- baseURL+TenantServiceAddMemberProcedure,
- connect.WithSchema(tenantServiceMethods.ByName("AddMember")),
- connect.WithClientOptions(opts...),
- ),
- removeMember: connect.NewClient[v2.TenantServiceRemoveMemberRequest, v2.TenantServiceRemoveMemberResponse](
- httpClient,
- baseURL+TenantServiceRemoveMemberProcedure,
- connect.WithSchema(tenantServiceMethods.ByName("RemoveMember")),
- connect.WithClientOptions(opts...),
- ),
- updateMember: connect.NewClient[v2.TenantServiceUpdateMemberRequest, v2.TenantServiceUpdateMemberResponse](
- httpClient,
- baseURL+TenantServiceUpdateMemberProcedure,
- connect.WithSchema(tenantServiceMethods.ByName("UpdateMember")),
- connect.WithClientOptions(opts...),
- ),
invite: connect.NewClient[v2.TenantServiceInviteRequest, v2.TenantServiceInviteResponse](
httpClient,
baseURL+TenantServiceInviteProcedure,
@@ -205,10 +163,6 @@ type tenantServiceClient struct {
get *connect.Client[v2.TenantServiceGetRequest, v2.TenantServiceGetResponse]
update *connect.Client[v2.TenantServiceUpdateRequest, v2.TenantServiceUpdateResponse]
delete *connect.Client[v2.TenantServiceDeleteRequest, v2.TenantServiceDeleteResponse]
- leave *connect.Client[v2.TenantServiceLeaveRequest, v2.TenantServiceLeaveResponse]
- addMember *connect.Client[v2.TenantServiceAddMemberRequest, v2.TenantServiceAddMemberResponse]
- removeMember *connect.Client[v2.TenantServiceRemoveMemberRequest, v2.TenantServiceRemoveMemberResponse]
- updateMember *connect.Client[v2.TenantServiceUpdateMemberRequest, v2.TenantServiceUpdateMemberResponse]
invite *connect.Client[v2.TenantServiceInviteRequest, v2.TenantServiceInviteResponse]
inviteAccept *connect.Client[v2.TenantServiceInviteAcceptRequest, v2.TenantServiceInviteAcceptResponse]
inviteDelete *connect.Client[v2.TenantServiceInviteDeleteRequest, v2.TenantServiceInviteDeleteResponse]
@@ -261,42 +215,6 @@ func (c *tenantServiceClient) Delete(ctx context.Context, req *v2.TenantServiceD
return nil, err
}
-// Leave calls metalstack.api.v2.TenantService.Leave.
-func (c *tenantServiceClient) Leave(ctx context.Context, req *v2.TenantServiceLeaveRequest) (*v2.TenantServiceLeaveResponse, error) {
- response, err := c.leave.CallUnary(ctx, connect.NewRequest(req))
- if response != nil {
- return response.Msg, err
- }
- return nil, err
-}
-
-// AddMember calls metalstack.api.v2.TenantService.AddMember.
-func (c *tenantServiceClient) AddMember(ctx context.Context, req *v2.TenantServiceAddMemberRequest) (*v2.TenantServiceAddMemberResponse, error) {
- response, err := c.addMember.CallUnary(ctx, connect.NewRequest(req))
- if response != nil {
- return response.Msg, err
- }
- return nil, err
-}
-
-// RemoveMember calls metalstack.api.v2.TenantService.RemoveMember.
-func (c *tenantServiceClient) RemoveMember(ctx context.Context, req *v2.TenantServiceRemoveMemberRequest) (*v2.TenantServiceRemoveMemberResponse, error) {
- response, err := c.removeMember.CallUnary(ctx, connect.NewRequest(req))
- if response != nil {
- return response.Msg, err
- }
- return nil, err
-}
-
-// UpdateMember calls metalstack.api.v2.TenantService.UpdateMember.
-func (c *tenantServiceClient) UpdateMember(ctx context.Context, req *v2.TenantServiceUpdateMemberRequest) (*v2.TenantServiceUpdateMemberResponse, error) {
- response, err := c.updateMember.CallUnary(ctx, connect.NewRequest(req))
- if response != nil {
- return response.Msg, err
- }
- return nil, err
-}
-
// Invite calls metalstack.api.v2.TenantService.Invite.
func (c *tenantServiceClient) Invite(ctx context.Context, req *v2.TenantServiceInviteRequest) (*v2.TenantServiceInviteResponse, error) {
response, err := c.invite.CallUnary(ctx, connect.NewRequest(req))
@@ -354,14 +272,6 @@ type TenantServiceHandler interface {
Update(context.Context, *v2.TenantServiceUpdateRequest) (*v2.TenantServiceUpdateResponse, error)
// Delete a tenant.
Delete(context.Context, *v2.TenantServiceDeleteRequest) (*v2.TenantServiceDeleteResponse, error)
- // Leave removes a member from a tenant.
- Leave(context.Context, *v2.TenantServiceLeaveRequest) (*v2.TenantServiceLeaveResponse, error)
- // AddMember adds a member to a tenant.
- AddMember(context.Context, *v2.TenantServiceAddMemberRequest) (*v2.TenantServiceAddMemberResponse, error)
- // RemoveMember removes a member from a tenant.
- RemoveMember(context.Context, *v2.TenantServiceRemoveMemberRequest) (*v2.TenantServiceRemoveMemberResponse, error)
- // UpdateMember update a member of a tenant.
- UpdateMember(context.Context, *v2.TenantServiceUpdateMemberRequest) (*v2.TenantServiceUpdateMemberResponse, error)
// Invite a user to a tenant.
Invite(context.Context, *v2.TenantServiceInviteRequest) (*v2.TenantServiceInviteResponse, error)
// InviteAccept is called from a user to accept an invitation.
@@ -411,30 +321,6 @@ func NewTenantServiceHandler(svc TenantServiceHandler, opts ...connect.HandlerOp
connect.WithSchema(tenantServiceMethods.ByName("Delete")),
connect.WithHandlerOptions(opts...),
)
- tenantServiceLeaveHandler := connect.NewUnaryHandlerSimple(
- TenantServiceLeaveProcedure,
- svc.Leave,
- connect.WithSchema(tenantServiceMethods.ByName("Leave")),
- connect.WithHandlerOptions(opts...),
- )
- tenantServiceAddMemberHandler := connect.NewUnaryHandlerSimple(
- TenantServiceAddMemberProcedure,
- svc.AddMember,
- connect.WithSchema(tenantServiceMethods.ByName("AddMember")),
- connect.WithHandlerOptions(opts...),
- )
- tenantServiceRemoveMemberHandler := connect.NewUnaryHandlerSimple(
- TenantServiceRemoveMemberProcedure,
- svc.RemoveMember,
- connect.WithSchema(tenantServiceMethods.ByName("RemoveMember")),
- connect.WithHandlerOptions(opts...),
- )
- tenantServiceUpdateMemberHandler := connect.NewUnaryHandlerSimple(
- TenantServiceUpdateMemberProcedure,
- svc.UpdateMember,
- connect.WithSchema(tenantServiceMethods.ByName("UpdateMember")),
- connect.WithHandlerOptions(opts...),
- )
tenantServiceInviteHandler := connect.NewUnaryHandlerSimple(
TenantServiceInviteProcedure,
svc.Invite,
@@ -477,14 +363,6 @@ func NewTenantServiceHandler(svc TenantServiceHandler, opts ...connect.HandlerOp
tenantServiceUpdateHandler.ServeHTTP(w, r)
case TenantServiceDeleteProcedure:
tenantServiceDeleteHandler.ServeHTTP(w, r)
- case TenantServiceLeaveProcedure:
- tenantServiceLeaveHandler.ServeHTTP(w, r)
- case TenantServiceAddMemberProcedure:
- tenantServiceAddMemberHandler.ServeHTTP(w, r)
- case TenantServiceRemoveMemberProcedure:
- tenantServiceRemoveMemberHandler.ServeHTTP(w, r)
- case TenantServiceUpdateMemberProcedure:
- tenantServiceUpdateMemberHandler.ServeHTTP(w, r)
case TenantServiceInviteProcedure:
tenantServiceInviteHandler.ServeHTTP(w, r)
case TenantServiceInviteAcceptProcedure:
@@ -524,22 +402,6 @@ func (UnimplementedTenantServiceHandler) Delete(context.Context, *v2.TenantServi
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.api.v2.TenantService.Delete is not implemented"))
}
-func (UnimplementedTenantServiceHandler) Leave(context.Context, *v2.TenantServiceLeaveRequest) (*v2.TenantServiceLeaveResponse, error) {
- return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.api.v2.TenantService.Leave is not implemented"))
-}
-
-func (UnimplementedTenantServiceHandler) AddMember(context.Context, *v2.TenantServiceAddMemberRequest) (*v2.TenantServiceAddMemberResponse, error) {
- return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.api.v2.TenantService.AddMember is not implemented"))
-}
-
-func (UnimplementedTenantServiceHandler) RemoveMember(context.Context, *v2.TenantServiceRemoveMemberRequest) (*v2.TenantServiceRemoveMemberResponse, error) {
- return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.api.v2.TenantService.RemoveMember is not implemented"))
-}
-
-func (UnimplementedTenantServiceHandler) UpdateMember(context.Context, *v2.TenantServiceUpdateMemberRequest) (*v2.TenantServiceUpdateMemberResponse, error) {
- return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.api.v2.TenantService.UpdateMember is not implemented"))
-}
-
func (UnimplementedTenantServiceHandler) Invite(context.Context, *v2.TenantServiceInviteRequest) (*v2.TenantServiceInviteResponse, error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.api.v2.TenantService.Invite is not implemented"))
}
diff --git a/go/metalstack/api/v2/apiv2connect/tenant_member.connect.go b/go/metalstack/api/v2/apiv2connect/tenant_member.connect.go
new file mode 100644
index 00000000..3cce4c07
--- /dev/null
+++ b/go/metalstack/api/v2/apiv2connect/tenant_member.connect.go
@@ -0,0 +1,290 @@
+// Code generated by protoc-gen-connect-go. DO NOT EDIT.
+//
+// Source: metalstack/api/v2/tenant_member.proto
+
+package apiv2connect
+
+import (
+ connect "connectrpc.com/connect"
+ context "context"
+ errors "errors"
+ v2 "github.com/metal-stack/api/go/metalstack/api/v2"
+ http "net/http"
+ strings "strings"
+)
+
+// This is a compile-time assertion to ensure that this generated file and the connect package are
+// compatible. If you get a compiler error that this constant is not defined, this code was
+// generated with a version of connect newer than the one compiled into your binary. You can fix the
+// problem by either regenerating this code with an older version of connect or updating the connect
+// version compiled into your binary.
+const _ = connect.IsAtLeastVersion1_13_0
+
+const (
+ // TenantMemberServiceName is the fully-qualified name of the TenantMemberService service.
+ TenantMemberServiceName = "metalstack.api.v2.TenantMemberService"
+)
+
+// These constants are the fully-qualified names of the RPCs defined in this package. They're
+// exposed at runtime as Spec.Procedure and as the final two segments of the HTTP route.
+//
+// Note that these are different from the fully-qualified method names used by
+// google.golang.org/protobuf/reflect/protoreflect. To convert from these constants to
+// reflection-formatted method names, remove the leading slash and convert the remaining slash to a
+// period.
+const (
+ // TenantMemberServiceCreateProcedure is the fully-qualified name of the TenantMemberService's
+ // Create RPC.
+ TenantMemberServiceCreateProcedure = "/metalstack.api.v2.TenantMemberService/Create"
+ // TenantMemberServiceListProcedure is the fully-qualified name of the TenantMemberService's List
+ // RPC.
+ TenantMemberServiceListProcedure = "/metalstack.api.v2.TenantMemberService/List"
+ // TenantMemberServiceGetProcedure is the fully-qualified name of the TenantMemberService's Get RPC.
+ TenantMemberServiceGetProcedure = "/metalstack.api.v2.TenantMemberService/Get"
+ // TenantMemberServiceUpdateProcedure is the fully-qualified name of the TenantMemberService's
+ // Update RPC.
+ TenantMemberServiceUpdateProcedure = "/metalstack.api.v2.TenantMemberService/Update"
+ // TenantMemberServiceDeleteProcedure is the fully-qualified name of the TenantMemberService's
+ // Delete RPC.
+ TenantMemberServiceDeleteProcedure = "/metalstack.api.v2.TenantMemberService/Delete"
+ // TenantMemberServiceLeaveProcedure is the fully-qualified name of the TenantMemberService's Leave
+ // RPC.
+ TenantMemberServiceLeaveProcedure = "/metalstack.api.v2.TenantMemberService/Leave"
+)
+
+// TenantMemberServiceClient is a client for the metalstack.api.v2.TenantMemberService service.
+type TenantMemberServiceClient interface {
+ // Creates a new tenant member.
+ Create(context.Context, *v2.TenantMemberServiceCreateRequest) (*v2.TenantMemberServiceCreateResponse, error)
+ // Returns the list of tenant members.
+ List(context.Context, *v2.TenantMemberServiceListRequest) (*v2.TenantMemberServiceListResponse, error)
+ // Get a tenant member.
+ Get(context.Context, *v2.TenantMemberServiceGetRequest) (*v2.TenantMemberServiceGetResponse, error)
+ // Update a tenant member.
+ Update(context.Context, *v2.TenantMemberServiceUpdateRequest) (*v2.TenantMemberServiceUpdateResponse, error)
+ // Delete a tenant.
+ Delete(context.Context, *v2.TenantMemberServiceDeleteRequest) (*v2.TenantMemberServiceDeleteResponse, error)
+ // Leave removes a member from a tenant.
+ Leave(context.Context, *v2.TenantMemberServiceLeaveRequest) (*v2.TenantMemberServiceLeaveResponse, error)
+}
+
+// NewTenantMemberServiceClient constructs a client for the metalstack.api.v2.TenantMemberService
+// service. By default, it uses the Connect protocol with the binary Protobuf Codec, asks for
+// gzipped responses, and sends uncompressed requests. To use the gRPC or gRPC-Web protocols, supply
+// the connect.WithGRPC() or connect.WithGRPCWeb() options.
+//
+// The URL supplied here should be the base URL for the Connect or gRPC server (for example,
+// http://api.acme.com or https://acme.com/grpc).
+func NewTenantMemberServiceClient(httpClient connect.HTTPClient, baseURL string, opts ...connect.ClientOption) TenantMemberServiceClient {
+ baseURL = strings.TrimRight(baseURL, "/")
+ tenantMemberServiceMethods := v2.File_metalstack_api_v2_tenant_member_proto.Services().ByName("TenantMemberService").Methods()
+ return &tenantMemberServiceClient{
+ create: connect.NewClient[v2.TenantMemberServiceCreateRequest, v2.TenantMemberServiceCreateResponse](
+ httpClient,
+ baseURL+TenantMemberServiceCreateProcedure,
+ connect.WithSchema(tenantMemberServiceMethods.ByName("Create")),
+ connect.WithClientOptions(opts...),
+ ),
+ list: connect.NewClient[v2.TenantMemberServiceListRequest, v2.TenantMemberServiceListResponse](
+ httpClient,
+ baseURL+TenantMemberServiceListProcedure,
+ connect.WithSchema(tenantMemberServiceMethods.ByName("List")),
+ connect.WithClientOptions(opts...),
+ ),
+ get: connect.NewClient[v2.TenantMemberServiceGetRequest, v2.TenantMemberServiceGetResponse](
+ httpClient,
+ baseURL+TenantMemberServiceGetProcedure,
+ connect.WithSchema(tenantMemberServiceMethods.ByName("Get")),
+ connect.WithClientOptions(opts...),
+ ),
+ update: connect.NewClient[v2.TenantMemberServiceUpdateRequest, v2.TenantMemberServiceUpdateResponse](
+ httpClient,
+ baseURL+TenantMemberServiceUpdateProcedure,
+ connect.WithSchema(tenantMemberServiceMethods.ByName("Update")),
+ connect.WithClientOptions(opts...),
+ ),
+ delete: connect.NewClient[v2.TenantMemberServiceDeleteRequest, v2.TenantMemberServiceDeleteResponse](
+ httpClient,
+ baseURL+TenantMemberServiceDeleteProcedure,
+ connect.WithSchema(tenantMemberServiceMethods.ByName("Delete")),
+ connect.WithClientOptions(opts...),
+ ),
+ leave: connect.NewClient[v2.TenantMemberServiceLeaveRequest, v2.TenantMemberServiceLeaveResponse](
+ httpClient,
+ baseURL+TenantMemberServiceLeaveProcedure,
+ connect.WithSchema(tenantMemberServiceMethods.ByName("Leave")),
+ connect.WithClientOptions(opts...),
+ ),
+ }
+}
+
+// tenantMemberServiceClient implements TenantMemberServiceClient.
+type tenantMemberServiceClient struct {
+ create *connect.Client[v2.TenantMemberServiceCreateRequest, v2.TenantMemberServiceCreateResponse]
+ list *connect.Client[v2.TenantMemberServiceListRequest, v2.TenantMemberServiceListResponse]
+ get *connect.Client[v2.TenantMemberServiceGetRequest, v2.TenantMemberServiceGetResponse]
+ update *connect.Client[v2.TenantMemberServiceUpdateRequest, v2.TenantMemberServiceUpdateResponse]
+ delete *connect.Client[v2.TenantMemberServiceDeleteRequest, v2.TenantMemberServiceDeleteResponse]
+ leave *connect.Client[v2.TenantMemberServiceLeaveRequest, v2.TenantMemberServiceLeaveResponse]
+}
+
+// Create calls metalstack.api.v2.TenantMemberService.Create.
+func (c *tenantMemberServiceClient) Create(ctx context.Context, req *v2.TenantMemberServiceCreateRequest) (*v2.TenantMemberServiceCreateResponse, error) {
+ response, err := c.create.CallUnary(ctx, connect.NewRequest(req))
+ if response != nil {
+ return response.Msg, err
+ }
+ return nil, err
+}
+
+// List calls metalstack.api.v2.TenantMemberService.List.
+func (c *tenantMemberServiceClient) List(ctx context.Context, req *v2.TenantMemberServiceListRequest) (*v2.TenantMemberServiceListResponse, error) {
+ response, err := c.list.CallUnary(ctx, connect.NewRequest(req))
+ if response != nil {
+ return response.Msg, err
+ }
+ return nil, err
+}
+
+// Get calls metalstack.api.v2.TenantMemberService.Get.
+func (c *tenantMemberServiceClient) Get(ctx context.Context, req *v2.TenantMemberServiceGetRequest) (*v2.TenantMemberServiceGetResponse, error) {
+ response, err := c.get.CallUnary(ctx, connect.NewRequest(req))
+ if response != nil {
+ return response.Msg, err
+ }
+ return nil, err
+}
+
+// Update calls metalstack.api.v2.TenantMemberService.Update.
+func (c *tenantMemberServiceClient) Update(ctx context.Context, req *v2.TenantMemberServiceUpdateRequest) (*v2.TenantMemberServiceUpdateResponse, error) {
+ response, err := c.update.CallUnary(ctx, connect.NewRequest(req))
+ if response != nil {
+ return response.Msg, err
+ }
+ return nil, err
+}
+
+// Delete calls metalstack.api.v2.TenantMemberService.Delete.
+func (c *tenantMemberServiceClient) Delete(ctx context.Context, req *v2.TenantMemberServiceDeleteRequest) (*v2.TenantMemberServiceDeleteResponse, error) {
+ response, err := c.delete.CallUnary(ctx, connect.NewRequest(req))
+ if response != nil {
+ return response.Msg, err
+ }
+ return nil, err
+}
+
+// Leave calls metalstack.api.v2.TenantMemberService.Leave.
+func (c *tenantMemberServiceClient) Leave(ctx context.Context, req *v2.TenantMemberServiceLeaveRequest) (*v2.TenantMemberServiceLeaveResponse, error) {
+ response, err := c.leave.CallUnary(ctx, connect.NewRequest(req))
+ if response != nil {
+ return response.Msg, err
+ }
+ return nil, err
+}
+
+// TenantMemberServiceHandler is an implementation of the metalstack.api.v2.TenantMemberService
+// service.
+type TenantMemberServiceHandler interface {
+ // Creates a new tenant member.
+ Create(context.Context, *v2.TenantMemberServiceCreateRequest) (*v2.TenantMemberServiceCreateResponse, error)
+ // Returns the list of tenant members.
+ List(context.Context, *v2.TenantMemberServiceListRequest) (*v2.TenantMemberServiceListResponse, error)
+ // Get a tenant member.
+ Get(context.Context, *v2.TenantMemberServiceGetRequest) (*v2.TenantMemberServiceGetResponse, error)
+ // Update a tenant member.
+ Update(context.Context, *v2.TenantMemberServiceUpdateRequest) (*v2.TenantMemberServiceUpdateResponse, error)
+ // Delete a tenant.
+ Delete(context.Context, *v2.TenantMemberServiceDeleteRequest) (*v2.TenantMemberServiceDeleteResponse, error)
+ // Leave removes a member from a tenant.
+ Leave(context.Context, *v2.TenantMemberServiceLeaveRequest) (*v2.TenantMemberServiceLeaveResponse, error)
+}
+
+// NewTenantMemberServiceHandler builds an HTTP handler from the service implementation. It returns
+// the path on which to mount the handler and the handler itself.
+//
+// By default, handlers support the Connect, gRPC, and gRPC-Web protocols with the binary Protobuf
+// and JSON codecs. They also support gzip compression.
+func NewTenantMemberServiceHandler(svc TenantMemberServiceHandler, opts ...connect.HandlerOption) (string, http.Handler) {
+ tenantMemberServiceMethods := v2.File_metalstack_api_v2_tenant_member_proto.Services().ByName("TenantMemberService").Methods()
+ tenantMemberServiceCreateHandler := connect.NewUnaryHandlerSimple(
+ TenantMemberServiceCreateProcedure,
+ svc.Create,
+ connect.WithSchema(tenantMemberServiceMethods.ByName("Create")),
+ connect.WithHandlerOptions(opts...),
+ )
+ tenantMemberServiceListHandler := connect.NewUnaryHandlerSimple(
+ TenantMemberServiceListProcedure,
+ svc.List,
+ connect.WithSchema(tenantMemberServiceMethods.ByName("List")),
+ connect.WithHandlerOptions(opts...),
+ )
+ tenantMemberServiceGetHandler := connect.NewUnaryHandlerSimple(
+ TenantMemberServiceGetProcedure,
+ svc.Get,
+ connect.WithSchema(tenantMemberServiceMethods.ByName("Get")),
+ connect.WithHandlerOptions(opts...),
+ )
+ tenantMemberServiceUpdateHandler := connect.NewUnaryHandlerSimple(
+ TenantMemberServiceUpdateProcedure,
+ svc.Update,
+ connect.WithSchema(tenantMemberServiceMethods.ByName("Update")),
+ connect.WithHandlerOptions(opts...),
+ )
+ tenantMemberServiceDeleteHandler := connect.NewUnaryHandlerSimple(
+ TenantMemberServiceDeleteProcedure,
+ svc.Delete,
+ connect.WithSchema(tenantMemberServiceMethods.ByName("Delete")),
+ connect.WithHandlerOptions(opts...),
+ )
+ tenantMemberServiceLeaveHandler := connect.NewUnaryHandlerSimple(
+ TenantMemberServiceLeaveProcedure,
+ svc.Leave,
+ connect.WithSchema(tenantMemberServiceMethods.ByName("Leave")),
+ connect.WithHandlerOptions(opts...),
+ )
+ return "/metalstack.api.v2.TenantMemberService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+ switch r.URL.Path {
+ case TenantMemberServiceCreateProcedure:
+ tenantMemberServiceCreateHandler.ServeHTTP(w, r)
+ case TenantMemberServiceListProcedure:
+ tenantMemberServiceListHandler.ServeHTTP(w, r)
+ case TenantMemberServiceGetProcedure:
+ tenantMemberServiceGetHandler.ServeHTTP(w, r)
+ case TenantMemberServiceUpdateProcedure:
+ tenantMemberServiceUpdateHandler.ServeHTTP(w, r)
+ case TenantMemberServiceDeleteProcedure:
+ tenantMemberServiceDeleteHandler.ServeHTTP(w, r)
+ case TenantMemberServiceLeaveProcedure:
+ tenantMemberServiceLeaveHandler.ServeHTTP(w, r)
+ default:
+ http.NotFound(w, r)
+ }
+ })
+}
+
+// UnimplementedTenantMemberServiceHandler returns CodeUnimplemented from all methods.
+type UnimplementedTenantMemberServiceHandler struct{}
+
+func (UnimplementedTenantMemberServiceHandler) Create(context.Context, *v2.TenantMemberServiceCreateRequest) (*v2.TenantMemberServiceCreateResponse, error) {
+ return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.api.v2.TenantMemberService.Create is not implemented"))
+}
+
+func (UnimplementedTenantMemberServiceHandler) List(context.Context, *v2.TenantMemberServiceListRequest) (*v2.TenantMemberServiceListResponse, error) {
+ return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.api.v2.TenantMemberService.List is not implemented"))
+}
+
+func (UnimplementedTenantMemberServiceHandler) Get(context.Context, *v2.TenantMemberServiceGetRequest) (*v2.TenantMemberServiceGetResponse, error) {
+ return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.api.v2.TenantMemberService.Get is not implemented"))
+}
+
+func (UnimplementedTenantMemberServiceHandler) Update(context.Context, *v2.TenantMemberServiceUpdateRequest) (*v2.TenantMemberServiceUpdateResponse, error) {
+ return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.api.v2.TenantMemberService.Update is not implemented"))
+}
+
+func (UnimplementedTenantMemberServiceHandler) Delete(context.Context, *v2.TenantMemberServiceDeleteRequest) (*v2.TenantMemberServiceDeleteResponse, error) {
+ return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.api.v2.TenantMemberService.Delete is not implemented"))
+}
+
+func (UnimplementedTenantMemberServiceHandler) Leave(context.Context, *v2.TenantMemberServiceLeaveRequest) (*v2.TenantMemberServiceLeaveResponse, error) {
+ return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.api.v2.TenantMemberService.Leave is not implemented"))
+}
diff --git a/go/metalstack/api/v2/project.pb.go b/go/metalstack/api/v2/project.pb.go
index 61fba4c8..e3de8e56 100644
--- a/go/metalstack/api/v2/project.pb.go
+++ b/go/metalstack/api/v2/project.pb.go
@@ -115,90 +115,6 @@ func (x *Project) GetAvatarUrl() string {
return ""
}
-// ProjectMember defines a user that participates in a project.
-type ProjectMember struct {
- state protoimpl.MessageState `protogen:"open.v1"`
- // Id is the user id of the member.
- Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
- // Role is the role of the member.
- Role ProjectRole `protobuf:"varint,2,opt,name=role,proto3,enum=metalstack.api.v2.ProjectRole" json:"role,omitempty"`
- // InheritedMembership indicates that this member has implicit permissions on the project through his membership within the tenant.
- // This member does not have direct project membership but gains permissions on this project from the role he has in the tenant.
- // Inherited memberships are not included in member lists for users with guest permission but only for direct tenant members.
- InheritedMembership bool `protobuf:"varint,3,opt,name=inherited_membership,json=inheritedMembership,proto3" json:"inherited_membership,omitempty"`
- // CreatedAt the date when the member was added to the project.
- CreatedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
- // Meta for this project member.
- Meta *Meta `protobuf:"bytes,5,opt,name=meta,proto3" json:"meta,omitempty"`
- unknownFields protoimpl.UnknownFields
- sizeCache protoimpl.SizeCache
-}
-
-func (x *ProjectMember) Reset() {
- *x = ProjectMember{}
- mi := &file_metalstack_api_v2_project_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
-}
-
-func (x *ProjectMember) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ProjectMember) ProtoMessage() {}
-
-func (x *ProjectMember) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_project_proto_msgTypes[1]
- if x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use ProjectMember.ProtoReflect.Descriptor instead.
-func (*ProjectMember) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *ProjectMember) GetId() string {
- if x != nil {
- return x.Id
- }
- return ""
-}
-
-func (x *ProjectMember) GetRole() ProjectRole {
- if x != nil {
- return x.Role
- }
- return ProjectRole_PROJECT_ROLE_UNSPECIFIED
-}
-
-func (x *ProjectMember) GetInheritedMembership() bool {
- if x != nil {
- return x.InheritedMembership
- }
- return false
-}
-
-func (x *ProjectMember) GetCreatedAt() *timestamppb.Timestamp {
- if x != nil {
- return x.CreatedAt
- }
- return nil
-}
-
-func (x *ProjectMember) GetMeta() *Meta {
- if x != nil {
- return x.Meta
- }
- return nil
-}
-
// ProjectInvite defines invite to project.
type ProjectInvite struct {
state protoimpl.MessageState `protogen:"open.v1"`
@@ -226,7 +142,7 @@ type ProjectInvite struct {
func (x *ProjectInvite) Reset() {
*x = ProjectInvite{}
- mi := &file_metalstack_api_v2_project_proto_msgTypes[2]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -238,7 +154,7 @@ func (x *ProjectInvite) String() string {
func (*ProjectInvite) ProtoMessage() {}
func (x *ProjectInvite) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_project_proto_msgTypes[2]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[1]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -251,7 +167,7 @@ func (x *ProjectInvite) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProjectInvite.ProtoReflect.Descriptor instead.
func (*ProjectInvite) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{2}
+ return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{1}
}
func (x *ProjectInvite) GetSecret() string {
@@ -328,7 +244,7 @@ type ProjectServiceListRequest struct {
func (x *ProjectServiceListRequest) Reset() {
*x = ProjectServiceListRequest{}
- mi := &file_metalstack_api_v2_project_proto_msgTypes[3]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -340,7 +256,7 @@ func (x *ProjectServiceListRequest) String() string {
func (*ProjectServiceListRequest) ProtoMessage() {}
func (x *ProjectServiceListRequest) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_project_proto_msgTypes[3]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[2]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -353,7 +269,7 @@ func (x *ProjectServiceListRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProjectServiceListRequest.ProtoReflect.Descriptor instead.
func (*ProjectServiceListRequest) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{3}
+ return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{2}
}
func (x *ProjectServiceListRequest) GetQuery() *ProjectQuery {
@@ -380,7 +296,7 @@ type ProjectQuery struct {
func (x *ProjectQuery) Reset() {
*x = ProjectQuery{}
- mi := &file_metalstack_api_v2_project_proto_msgTypes[4]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -392,7 +308,7 @@ func (x *ProjectQuery) String() string {
func (*ProjectQuery) ProtoMessage() {}
func (x *ProjectQuery) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_project_proto_msgTypes[4]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[3]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -405,7 +321,7 @@ func (x *ProjectQuery) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProjectQuery.ProtoReflect.Descriptor instead.
func (*ProjectQuery) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{4}
+ return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{3}
}
func (x *ProjectQuery) GetUuid() string {
@@ -447,7 +363,7 @@ type ProjectServiceListResponse struct {
func (x *ProjectServiceListResponse) Reset() {
*x = ProjectServiceListResponse{}
- mi := &file_metalstack_api_v2_project_proto_msgTypes[5]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -459,7 +375,7 @@ func (x *ProjectServiceListResponse) String() string {
func (*ProjectServiceListResponse) ProtoMessage() {}
func (x *ProjectServiceListResponse) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_project_proto_msgTypes[5]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[4]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -472,7 +388,7 @@ func (x *ProjectServiceListResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProjectServiceListResponse.ProtoReflect.Descriptor instead.
func (*ProjectServiceListResponse) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{5}
+ return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{4}
}
func (x *ProjectServiceListResponse) GetProjects() []*Project {
@@ -493,7 +409,7 @@ type ProjectServiceGetRequest struct {
func (x *ProjectServiceGetRequest) Reset() {
*x = ProjectServiceGetRequest{}
- mi := &file_metalstack_api_v2_project_proto_msgTypes[6]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -505,7 +421,7 @@ func (x *ProjectServiceGetRequest) String() string {
func (*ProjectServiceGetRequest) ProtoMessage() {}
func (x *ProjectServiceGetRequest) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_project_proto_msgTypes[6]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[5]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -518,7 +434,7 @@ func (x *ProjectServiceGetRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProjectServiceGetRequest.ProtoReflect.Descriptor instead.
func (*ProjectServiceGetRequest) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{6}
+ return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{5}
}
func (x *ProjectServiceGetRequest) GetProject() string {
@@ -532,16 +448,14 @@ func (x *ProjectServiceGetRequest) GetProject() string {
type ProjectServiceGetResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Project is the project.
- Project *Project `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
- // ProjectMembers in this project, projects guests will only see direct project members and not implicit memberships from tenant permissions.
- ProjectMembers []*ProjectMember `protobuf:"bytes,2,rep,name=project_members,json=projectMembers,proto3" json:"project_members,omitempty"`
- unknownFields protoimpl.UnknownFields
- sizeCache protoimpl.SizeCache
+ Project *Project `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
}
func (x *ProjectServiceGetResponse) Reset() {
*x = ProjectServiceGetResponse{}
- mi := &file_metalstack_api_v2_project_proto_msgTypes[7]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -553,7 +467,7 @@ func (x *ProjectServiceGetResponse) String() string {
func (*ProjectServiceGetResponse) ProtoMessage() {}
func (x *ProjectServiceGetResponse) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_project_proto_msgTypes[7]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[6]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -566,7 +480,7 @@ func (x *ProjectServiceGetResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProjectServiceGetResponse.ProtoReflect.Descriptor instead.
func (*ProjectServiceGetResponse) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{7}
+ return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{6}
}
func (x *ProjectServiceGetResponse) GetProject() *Project {
@@ -576,13 +490,6 @@ func (x *ProjectServiceGetResponse) GetProject() *Project {
return nil
}
-func (x *ProjectServiceGetResponse) GetProjectMembers() []*ProjectMember {
- if x != nil {
- return x.ProjectMembers
- }
- return nil
-}
-
// ProjectServiceCreateRequest is the request payload to Create a project.
type ProjectServiceCreateRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
@@ -603,7 +510,7 @@ type ProjectServiceCreateRequest struct {
func (x *ProjectServiceCreateRequest) Reset() {
*x = ProjectServiceCreateRequest{}
- mi := &file_metalstack_api_v2_project_proto_msgTypes[8]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -615,7 +522,7 @@ func (x *ProjectServiceCreateRequest) String() string {
func (*ProjectServiceCreateRequest) ProtoMessage() {}
func (x *ProjectServiceCreateRequest) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_project_proto_msgTypes[8]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[7]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -628,7 +535,7 @@ func (x *ProjectServiceCreateRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProjectServiceCreateRequest.ProtoReflect.Descriptor instead.
func (*ProjectServiceCreateRequest) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{8}
+ return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{7}
}
func (x *ProjectServiceCreateRequest) GetLogin() string {
@@ -677,7 +584,7 @@ type ProjectServiceCreateResponse struct {
func (x *ProjectServiceCreateResponse) Reset() {
*x = ProjectServiceCreateResponse{}
- mi := &file_metalstack_api_v2_project_proto_msgTypes[9]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -689,7 +596,7 @@ func (x *ProjectServiceCreateResponse) String() string {
func (*ProjectServiceCreateResponse) ProtoMessage() {}
func (x *ProjectServiceCreateResponse) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_project_proto_msgTypes[9]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[8]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -702,7 +609,7 @@ func (x *ProjectServiceCreateResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProjectServiceCreateResponse.ProtoReflect.Descriptor instead.
func (*ProjectServiceCreateResponse) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{9}
+ return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{8}
}
func (x *ProjectServiceCreateResponse) GetProject() *Project {
@@ -723,7 +630,7 @@ type ProjectServiceDeleteRequest struct {
func (x *ProjectServiceDeleteRequest) Reset() {
*x = ProjectServiceDeleteRequest{}
- mi := &file_metalstack_api_v2_project_proto_msgTypes[10]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -735,7 +642,7 @@ func (x *ProjectServiceDeleteRequest) String() string {
func (*ProjectServiceDeleteRequest) ProtoMessage() {}
func (x *ProjectServiceDeleteRequest) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_project_proto_msgTypes[10]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[9]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -748,7 +655,7 @@ func (x *ProjectServiceDeleteRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProjectServiceDeleteRequest.ProtoReflect.Descriptor instead.
func (*ProjectServiceDeleteRequest) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{10}
+ return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{9}
}
func (x *ProjectServiceDeleteRequest) GetProject() string {
@@ -769,7 +676,7 @@ type ProjectServiceDeleteResponse struct {
func (x *ProjectServiceDeleteResponse) Reset() {
*x = ProjectServiceDeleteResponse{}
- mi := &file_metalstack_api_v2_project_proto_msgTypes[11]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -781,7 +688,7 @@ func (x *ProjectServiceDeleteResponse) String() string {
func (*ProjectServiceDeleteResponse) ProtoMessage() {}
func (x *ProjectServiceDeleteResponse) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_project_proto_msgTypes[11]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[10]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -794,7 +701,7 @@ func (x *ProjectServiceDeleteResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProjectServiceDeleteResponse.ProtoReflect.Descriptor instead.
func (*ProjectServiceDeleteResponse) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{11}
+ return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{10}
}
func (x *ProjectServiceDeleteResponse) GetProject() *Project {
@@ -825,7 +732,7 @@ type ProjectServiceUpdateRequest struct {
func (x *ProjectServiceUpdateRequest) Reset() {
*x = ProjectServiceUpdateRequest{}
- mi := &file_metalstack_api_v2_project_proto_msgTypes[12]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -837,7 +744,7 @@ func (x *ProjectServiceUpdateRequest) String() string {
func (*ProjectServiceUpdateRequest) ProtoMessage() {}
func (x *ProjectServiceUpdateRequest) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_project_proto_msgTypes[12]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[11]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -850,7 +757,7 @@ func (x *ProjectServiceUpdateRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProjectServiceUpdateRequest.ProtoReflect.Descriptor instead.
func (*ProjectServiceUpdateRequest) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{12}
+ return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{11}
}
func (x *ProjectServiceUpdateRequest) GetProject() string {
@@ -906,7 +813,7 @@ type ProjectServiceUpdateResponse struct {
func (x *ProjectServiceUpdateResponse) Reset() {
*x = ProjectServiceUpdateResponse{}
- mi := &file_metalstack_api_v2_project_proto_msgTypes[13]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -918,7 +825,7 @@ func (x *ProjectServiceUpdateResponse) String() string {
func (*ProjectServiceUpdateResponse) ProtoMessage() {}
func (x *ProjectServiceUpdateResponse) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_project_proto_msgTypes[13]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[12]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -931,7 +838,7 @@ func (x *ProjectServiceUpdateResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProjectServiceUpdateResponse.ProtoReflect.Descriptor instead.
func (*ProjectServiceUpdateResponse) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{13}
+ return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{12}
}
func (x *ProjectServiceUpdateResponse) GetProject() *Project {
@@ -954,7 +861,7 @@ type ProjectServiceInviteRequest struct {
func (x *ProjectServiceInviteRequest) Reset() {
*x = ProjectServiceInviteRequest{}
- mi := &file_metalstack_api_v2_project_proto_msgTypes[14]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -966,7 +873,7 @@ func (x *ProjectServiceInviteRequest) String() string {
func (*ProjectServiceInviteRequest) ProtoMessage() {}
func (x *ProjectServiceInviteRequest) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_project_proto_msgTypes[14]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[13]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -979,7 +886,7 @@ func (x *ProjectServiceInviteRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProjectServiceInviteRequest.ProtoReflect.Descriptor instead.
func (*ProjectServiceInviteRequest) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{14}
+ return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{13}
}
func (x *ProjectServiceInviteRequest) GetProject() string {
@@ -1009,7 +916,7 @@ type ProjectServiceInviteResponse struct {
func (x *ProjectServiceInviteResponse) Reset() {
*x = ProjectServiceInviteResponse{}
- mi := &file_metalstack_api_v2_project_proto_msgTypes[15]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1021,7 +928,7 @@ func (x *ProjectServiceInviteResponse) String() string {
func (*ProjectServiceInviteResponse) ProtoMessage() {}
func (x *ProjectServiceInviteResponse) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_project_proto_msgTypes[15]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[14]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1034,7 +941,7 @@ func (x *ProjectServiceInviteResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProjectServiceInviteResponse.ProtoReflect.Descriptor instead.
func (*ProjectServiceInviteResponse) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{15}
+ return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{14}
}
func (x *ProjectServiceInviteResponse) GetInvite() *ProjectInvite {
@@ -1055,7 +962,7 @@ type ProjectServiceInvitesListRequest struct {
func (x *ProjectServiceInvitesListRequest) Reset() {
*x = ProjectServiceInvitesListRequest{}
- mi := &file_metalstack_api_v2_project_proto_msgTypes[16]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1067,7 +974,7 @@ func (x *ProjectServiceInvitesListRequest) String() string {
func (*ProjectServiceInvitesListRequest) ProtoMessage() {}
func (x *ProjectServiceInvitesListRequest) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_project_proto_msgTypes[16]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[15]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1080,7 +987,7 @@ func (x *ProjectServiceInvitesListRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProjectServiceInvitesListRequest.ProtoReflect.Descriptor instead.
func (*ProjectServiceInvitesListRequest) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{16}
+ return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{15}
}
func (x *ProjectServiceInvitesListRequest) GetProject() string {
@@ -1101,7 +1008,7 @@ type ProjectServiceInvitesListResponse struct {
func (x *ProjectServiceInvitesListResponse) Reset() {
*x = ProjectServiceInvitesListResponse{}
- mi := &file_metalstack_api_v2_project_proto_msgTypes[17]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1113,7 +1020,7 @@ func (x *ProjectServiceInvitesListResponse) String() string {
func (*ProjectServiceInvitesListResponse) ProtoMessage() {}
func (x *ProjectServiceInvitesListResponse) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_project_proto_msgTypes[17]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[16]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1126,7 +1033,7 @@ func (x *ProjectServiceInvitesListResponse) ProtoReflect() protoreflect.Message
// Deprecated: Use ProjectServiceInvitesListResponse.ProtoReflect.Descriptor instead.
func (*ProjectServiceInvitesListResponse) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{17}
+ return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{16}
}
func (x *ProjectServiceInvitesListResponse) GetInvites() []*ProjectInvite {
@@ -1147,7 +1054,7 @@ type ProjectServiceInviteGetRequest struct {
func (x *ProjectServiceInviteGetRequest) Reset() {
*x = ProjectServiceInviteGetRequest{}
- mi := &file_metalstack_api_v2_project_proto_msgTypes[18]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1159,7 +1066,7 @@ func (x *ProjectServiceInviteGetRequest) String() string {
func (*ProjectServiceInviteGetRequest) ProtoMessage() {}
func (x *ProjectServiceInviteGetRequest) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_project_proto_msgTypes[18]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[17]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1172,7 +1079,7 @@ func (x *ProjectServiceInviteGetRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProjectServiceInviteGetRequest.ProtoReflect.Descriptor instead.
func (*ProjectServiceInviteGetRequest) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{18}
+ return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{17}
}
func (x *ProjectServiceInviteGetRequest) GetSecret() string {
@@ -1193,7 +1100,7 @@ type ProjectServiceInviteGetResponse struct {
func (x *ProjectServiceInviteGetResponse) Reset() {
*x = ProjectServiceInviteGetResponse{}
- mi := &file_metalstack_api_v2_project_proto_msgTypes[19]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1205,7 +1112,7 @@ func (x *ProjectServiceInviteGetResponse) String() string {
func (*ProjectServiceInviteGetResponse) ProtoMessage() {}
func (x *ProjectServiceInviteGetResponse) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_project_proto_msgTypes[19]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[18]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1218,7 +1125,7 @@ func (x *ProjectServiceInviteGetResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProjectServiceInviteGetResponse.ProtoReflect.Descriptor instead.
func (*ProjectServiceInviteGetResponse) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{19}
+ return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{18}
}
func (x *ProjectServiceInviteGetResponse) GetInvite() *ProjectInvite {
@@ -1228,401 +1135,6 @@ func (x *ProjectServiceInviteGetResponse) GetInvite() *ProjectInvite {
return nil
}
-// ProjectServiceLeaveRequest is used to leave a project.
-type ProjectServiceLeaveRequest struct {
- state protoimpl.MessageState `protogen:"open.v1"`
- // Project is the uuid of the project.
- Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
- unknownFields protoimpl.UnknownFields
- sizeCache protoimpl.SizeCache
-}
-
-func (x *ProjectServiceLeaveRequest) Reset() {
- *x = ProjectServiceLeaveRequest{}
- mi := &file_metalstack_api_v2_project_proto_msgTypes[20]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
-}
-
-func (x *ProjectServiceLeaveRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ProjectServiceLeaveRequest) ProtoMessage() {}
-
-func (x *ProjectServiceLeaveRequest) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_project_proto_msgTypes[20]
- if x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use ProjectServiceLeaveRequest.ProtoReflect.Descriptor instead.
-func (*ProjectServiceLeaveRequest) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{20}
-}
-
-func (x *ProjectServiceLeaveRequest) GetProject() string {
- if x != nil {
- return x.Project
- }
- return ""
-}
-
-// ProjectServiceLeaveResponse is the response payload to a leave project request.
-type ProjectServiceLeaveResponse struct {
- state protoimpl.MessageState `protogen:"open.v1"`
- unknownFields protoimpl.UnknownFields
- sizeCache protoimpl.SizeCache
-}
-
-func (x *ProjectServiceLeaveResponse) Reset() {
- *x = ProjectServiceLeaveResponse{}
- mi := &file_metalstack_api_v2_project_proto_msgTypes[21]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
-}
-
-func (x *ProjectServiceLeaveResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ProjectServiceLeaveResponse) ProtoMessage() {}
-
-func (x *ProjectServiceLeaveResponse) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_project_proto_msgTypes[21]
- if x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use ProjectServiceLeaveResponse.ProtoReflect.Descriptor instead.
-func (*ProjectServiceLeaveResponse) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{21}
-}
-
-// ProjectServiceAddMemberRequest is the request payload for adding a member to a project.
-type ProjectServiceAddMemberRequest struct {
- state protoimpl.MessageState `protogen:"open.v1"`
- // Project is the uuid of the project.
- Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
- // Login of the member to add.
- Member string `protobuf:"bytes,2,opt,name=member,proto3" json:"member,omitempty"`
- // Role to assign to the new member.
- Role ProjectRole `protobuf:"varint,3,opt,name=role,proto3,enum=metalstack.api.v2.ProjectRole" json:"role,omitempty"`
- unknownFields protoimpl.UnknownFields
- sizeCache protoimpl.SizeCache
-}
-
-func (x *ProjectServiceAddMemberRequest) Reset() {
- *x = ProjectServiceAddMemberRequest{}
- mi := &file_metalstack_api_v2_project_proto_msgTypes[22]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
-}
-
-func (x *ProjectServiceAddMemberRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ProjectServiceAddMemberRequest) ProtoMessage() {}
-
-func (x *ProjectServiceAddMemberRequest) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_project_proto_msgTypes[22]
- if x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use ProjectServiceAddMemberRequest.ProtoReflect.Descriptor instead.
-func (*ProjectServiceAddMemberRequest) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{22}
-}
-
-func (x *ProjectServiceAddMemberRequest) GetProject() string {
- if x != nil {
- return x.Project
- }
- return ""
-}
-
-func (x *ProjectServiceAddMemberRequest) GetMember() string {
- if x != nil {
- return x.Member
- }
- return ""
-}
-
-func (x *ProjectServiceAddMemberRequest) GetRole() ProjectRole {
- if x != nil {
- return x.Role
- }
- return ProjectRole_PROJECT_ROLE_UNSPECIFIED
-}
-
-// ProjectServiceAddMemberResponse is the response payload for the add member request.
-type ProjectServiceAddMemberResponse struct {
- state protoimpl.MessageState `protogen:"open.v1"`
- // ProjectRole is the added project member.
- ProjectMember ProjectRole `protobuf:"varint,1,opt,name=project_member,json=projectMember,proto3,enum=metalstack.api.v2.ProjectRole" json:"project_member,omitempty"`
- unknownFields protoimpl.UnknownFields
- sizeCache protoimpl.SizeCache
-}
-
-func (x *ProjectServiceAddMemberResponse) Reset() {
- *x = ProjectServiceAddMemberResponse{}
- mi := &file_metalstack_api_v2_project_proto_msgTypes[23]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
-}
-
-func (x *ProjectServiceAddMemberResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ProjectServiceAddMemberResponse) ProtoMessage() {}
-
-func (x *ProjectServiceAddMemberResponse) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_project_proto_msgTypes[23]
- if x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use ProjectServiceAddMemberResponse.ProtoReflect.Descriptor instead.
-func (*ProjectServiceAddMemberResponse) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{23}
-}
-
-func (x *ProjectServiceAddMemberResponse) GetProjectMember() ProjectRole {
- if x != nil {
- return x.ProjectMember
- }
- return ProjectRole_PROJECT_ROLE_UNSPECIFIED
-}
-
-// ProjectServiceRemoveMemberRequest is used to remove a member from a project.
-type ProjectServiceRemoveMemberRequest struct {
- state protoimpl.MessageState `protogen:"open.v1"`
- // Project is the uuid of the project.
- Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
- // Member is the id of the member to remove from this project.
- Member string `protobuf:"bytes,2,opt,name=member,proto3" json:"member,omitempty"`
- unknownFields protoimpl.UnknownFields
- sizeCache protoimpl.SizeCache
-}
-
-func (x *ProjectServiceRemoveMemberRequest) Reset() {
- *x = ProjectServiceRemoveMemberRequest{}
- mi := &file_metalstack_api_v2_project_proto_msgTypes[24]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
-}
-
-func (x *ProjectServiceRemoveMemberRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ProjectServiceRemoveMemberRequest) ProtoMessage() {}
-
-func (x *ProjectServiceRemoveMemberRequest) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_project_proto_msgTypes[24]
- if x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use ProjectServiceRemoveMemberRequest.ProtoReflect.Descriptor instead.
-func (*ProjectServiceRemoveMemberRequest) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{24}
-}
-
-func (x *ProjectServiceRemoveMemberRequest) GetProject() string {
- if x != nil {
- return x.Project
- }
- return ""
-}
-
-func (x *ProjectServiceRemoveMemberRequest) GetMember() string {
- if x != nil {
- return x.Member
- }
- return ""
-}
-
-// ProjectServiceRemoveMemberResponse is the response payload to a remove member request.
-type ProjectServiceRemoveMemberResponse struct {
- state protoimpl.MessageState `protogen:"open.v1"`
- unknownFields protoimpl.UnknownFields
- sizeCache protoimpl.SizeCache
-}
-
-func (x *ProjectServiceRemoveMemberResponse) Reset() {
- *x = ProjectServiceRemoveMemberResponse{}
- mi := &file_metalstack_api_v2_project_proto_msgTypes[25]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
-}
-
-func (x *ProjectServiceRemoveMemberResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ProjectServiceRemoveMemberResponse) ProtoMessage() {}
-
-func (x *ProjectServiceRemoveMemberResponse) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_project_proto_msgTypes[25]
- if x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use ProjectServiceRemoveMemberResponse.ProtoReflect.Descriptor instead.
-func (*ProjectServiceRemoveMemberResponse) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{25}
-}
-
-// ProjectServiceUpdateMemberRequest is used to update a member of a project.
-type ProjectServiceUpdateMemberRequest struct {
- state protoimpl.MessageState `protogen:"open.v1"`
- // Project is the uuid of the project.
- Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
- // Member is the id of the member to remove from this project.
- Member string `protobuf:"bytes,2,opt,name=member,proto3" json:"member,omitempty"`
- // Role is the role in this project the user will get after the update.
- Role ProjectRole `protobuf:"varint,3,opt,name=role,proto3,enum=metalstack.api.v2.ProjectRole" json:"role,omitempty"`
- unknownFields protoimpl.UnknownFields
- sizeCache protoimpl.SizeCache
-}
-
-func (x *ProjectServiceUpdateMemberRequest) Reset() {
- *x = ProjectServiceUpdateMemberRequest{}
- mi := &file_metalstack_api_v2_project_proto_msgTypes[26]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
-}
-
-func (x *ProjectServiceUpdateMemberRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ProjectServiceUpdateMemberRequest) ProtoMessage() {}
-
-func (x *ProjectServiceUpdateMemberRequest) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_project_proto_msgTypes[26]
- if x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use ProjectServiceUpdateMemberRequest.ProtoReflect.Descriptor instead.
-func (*ProjectServiceUpdateMemberRequest) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{26}
-}
-
-func (x *ProjectServiceUpdateMemberRequest) GetProject() string {
- if x != nil {
- return x.Project
- }
- return ""
-}
-
-func (x *ProjectServiceUpdateMemberRequest) GetMember() string {
- if x != nil {
- return x.Member
- }
- return ""
-}
-
-func (x *ProjectServiceUpdateMemberRequest) GetRole() ProjectRole {
- if x != nil {
- return x.Role
- }
- return ProjectRole_PROJECT_ROLE_UNSPECIFIED
-}
-
-// ProjectServiceUpdateMemberResponse is the response payload to a update member request.
-type ProjectServiceUpdateMemberResponse struct {
- state protoimpl.MessageState `protogen:"open.v1"`
- // ProjectMember is the updated project member.
- ProjectMember *ProjectMember `protobuf:"bytes,1,opt,name=project_member,json=projectMember,proto3" json:"project_member,omitempty"`
- unknownFields protoimpl.UnknownFields
- sizeCache protoimpl.SizeCache
-}
-
-func (x *ProjectServiceUpdateMemberResponse) Reset() {
- *x = ProjectServiceUpdateMemberResponse{}
- mi := &file_metalstack_api_v2_project_proto_msgTypes[27]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
-}
-
-func (x *ProjectServiceUpdateMemberResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ProjectServiceUpdateMemberResponse) ProtoMessage() {}
-
-func (x *ProjectServiceUpdateMemberResponse) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_project_proto_msgTypes[27]
- if x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use ProjectServiceUpdateMemberResponse.ProtoReflect.Descriptor instead.
-func (*ProjectServiceUpdateMemberResponse) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{27}
-}
-
-func (x *ProjectServiceUpdateMemberResponse) GetProjectMember() *ProjectMember {
- if x != nil {
- return x.ProjectMember
- }
- return nil
-}
-
// ProjectServiceInviteAcceptRequest is the request payload to a accept invite request.
type ProjectServiceInviteAcceptRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
@@ -1634,7 +1146,7 @@ type ProjectServiceInviteAcceptRequest struct {
func (x *ProjectServiceInviteAcceptRequest) Reset() {
*x = ProjectServiceInviteAcceptRequest{}
- mi := &file_metalstack_api_v2_project_proto_msgTypes[28]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1646,7 +1158,7 @@ func (x *ProjectServiceInviteAcceptRequest) String() string {
func (*ProjectServiceInviteAcceptRequest) ProtoMessage() {}
func (x *ProjectServiceInviteAcceptRequest) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_project_proto_msgTypes[28]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[19]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1659,7 +1171,7 @@ func (x *ProjectServiceInviteAcceptRequest) ProtoReflect() protoreflect.Message
// Deprecated: Use ProjectServiceInviteAcceptRequest.ProtoReflect.Descriptor instead.
func (*ProjectServiceInviteAcceptRequest) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{28}
+ return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{19}
}
func (x *ProjectServiceInviteAcceptRequest) GetSecret() string {
@@ -1682,7 +1194,7 @@ type ProjectServiceInviteAcceptResponse struct {
func (x *ProjectServiceInviteAcceptResponse) Reset() {
*x = ProjectServiceInviteAcceptResponse{}
- mi := &file_metalstack_api_v2_project_proto_msgTypes[29]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1694,7 +1206,7 @@ func (x *ProjectServiceInviteAcceptResponse) String() string {
func (*ProjectServiceInviteAcceptResponse) ProtoMessage() {}
func (x *ProjectServiceInviteAcceptResponse) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_project_proto_msgTypes[29]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[20]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1707,7 +1219,7 @@ func (x *ProjectServiceInviteAcceptResponse) ProtoReflect() protoreflect.Message
// Deprecated: Use ProjectServiceInviteAcceptResponse.ProtoReflect.Descriptor instead.
func (*ProjectServiceInviteAcceptResponse) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{29}
+ return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{20}
}
func (x *ProjectServiceInviteAcceptResponse) GetProject() string {
@@ -1737,7 +1249,7 @@ type ProjectServiceInviteDeleteRequest struct {
func (x *ProjectServiceInviteDeleteRequest) Reset() {
*x = ProjectServiceInviteDeleteRequest{}
- mi := &file_metalstack_api_v2_project_proto_msgTypes[30]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1749,7 +1261,7 @@ func (x *ProjectServiceInviteDeleteRequest) String() string {
func (*ProjectServiceInviteDeleteRequest) ProtoMessage() {}
func (x *ProjectServiceInviteDeleteRequest) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_project_proto_msgTypes[30]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[21]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1762,7 +1274,7 @@ func (x *ProjectServiceInviteDeleteRequest) ProtoReflect() protoreflect.Message
// Deprecated: Use ProjectServiceInviteDeleteRequest.ProtoReflect.Descriptor instead.
func (*ProjectServiceInviteDeleteRequest) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{30}
+ return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{21}
}
func (x *ProjectServiceInviteDeleteRequest) GetProject() string {
@@ -1788,7 +1300,7 @@ type ProjectServiceInviteDeleteResponse struct {
func (x *ProjectServiceInviteDeleteResponse) Reset() {
*x = ProjectServiceInviteDeleteResponse{}
- mi := &file_metalstack_api_v2_project_proto_msgTypes[31]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1800,7 +1312,7 @@ func (x *ProjectServiceInviteDeleteResponse) String() string {
func (*ProjectServiceInviteDeleteResponse) ProtoMessage() {}
func (x *ProjectServiceInviteDeleteResponse) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_project_proto_msgTypes[31]
+ mi := &file_metalstack_api_v2_project_proto_msgTypes[22]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1813,7 +1325,7 @@ func (x *ProjectServiceInviteDeleteResponse) ProtoReflect() protoreflect.Message
// Deprecated: Use ProjectServiceInviteDeleteResponse.ProtoReflect.Descriptor instead.
func (*ProjectServiceInviteDeleteResponse) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{31}
+ return file_metalstack_api_v2_project_proto_rawDescGZIP(), []int{22}
}
var File_metalstack_api_v2_project_proto protoreflect.FileDescriptor
@@ -1829,14 +1341,7 @@ const file_metalstack_api_v2_project_proto_rawDesc = "" +
"\x06tenant\x18\x05 \x01(\tR\x06tenant\x12/\n" +
"\n" +
"avatar_url\x18\x06 \x01(\tB\v\xbaH\br\x06à³®\xb1\x02\x01H\x00R\tavatarUrl\x88\x01\x01B\r\n" +
- "\v_avatar_url\"\xf8\x01\n" +
- "\rProjectMember\x12\x0e\n" +
- "\x02id\x18\x01 \x01(\tR\x02id\x12<\n" +
- "\x04role\x18\x02 \x01(\x0e2\x1e.metalstack.api.v2.ProjectRoleB\b\xbaH\x05\x82\x01\x02\x10\x01R\x04role\x121\n" +
- "\x14inherited_membership\x18\x03 \x01(\bR\x13inheritedMembership\x129\n" +
- "\n" +
- "created_at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x12+\n" +
- "\x04meta\x18\x05 \x01(\v2\x17.metalstack.api.v2.MetaR\x04meta\"\xe7\x02\n" +
+ "\v_avatar_url\"\xe7\x02\n" +
"\rProjectInvite\x12\x16\n" +
"\x06secret\x18\x01 \x01(\tR\x06secret\x12\x18\n" +
"\aproject\x18\x02 \x01(\tR\aproject\x12<\n" +
@@ -1863,10 +1368,9 @@ const file_metalstack_api_v2_project_proto_rawDesc = "" +
"\x1aProjectServiceListResponse\x126\n" +
"\bprojects\x18\x01 \x03(\v2\x1a.metalstack.api.v2.ProjectR\bprojects\">\n" +
"\x18ProjectServiceGetRequest\x12\"\n" +
- "\aproject\x18\x01 \x01(\tB\b\xbaH\x05r\x03\xb0\x01\x01R\aproject\"\x9c\x01\n" +
+ "\aproject\x18\x01 \x01(\tB\b\xbaH\x05r\x03\xb0\x01\x01R\aproject\"Q\n" +
"\x19ProjectServiceGetResponse\x124\n" +
- "\aproject\x18\x01 \x01(\v2\x1a.metalstack.api.v2.ProjectR\aproject\x12I\n" +
- "\x0fproject_members\x18\x02 \x03(\v2 .metalstack.api.v2.ProjectMemberR\x0eprojectMembers\"\x83\x02\n" +
+ "\aproject\x18\x01 \x01(\v2\x1a.metalstack.api.v2.ProjectR\aproject\"\x83\x02\n" +
"\x1bProjectServiceCreateRequest\x12!\n" +
"\x05login\x18\x01 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01R\x05login\x12\x1f\n" +
"\x04name\x18\x02 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01R\x04name\x12-\n" +
@@ -1908,26 +1412,7 @@ const file_metalstack_api_v2_project_proto_rawDesc = "" +
"\x1eProjectServiceInviteGetRequest\x12\x16\n" +
"\x06secret\x18\x01 \x01(\tR\x06secret\"[\n" +
"\x1fProjectServiceInviteGetResponse\x128\n" +
- "\x06invite\x18\x01 \x01(\v2 .metalstack.api.v2.ProjectInviteR\x06invite\"@\n" +
- "\x1aProjectServiceLeaveRequest\x12\"\n" +
- "\aproject\x18\x01 \x01(\tB\b\xbaH\x05r\x03\xb0\x01\x01R\aproject\"\x1d\n" +
- "\x1bProjectServiceLeaveResponse\"\xa7\x01\n" +
- "\x1eProjectServiceAddMemberRequest\x12\"\n" +
- "\aproject\x18\x01 \x01(\tB\b\xbaH\x05r\x03\xb0\x01\x01R\aproject\x12#\n" +
- "\x06member\x18\x02 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01R\x06member\x12<\n" +
- "\x04role\x18\x03 \x01(\x0e2\x1e.metalstack.api.v2.ProjectRoleB\b\xbaH\x05\x82\x01\x02\x10\x01R\x04role\"h\n" +
- "\x1fProjectServiceAddMemberResponse\x12E\n" +
- "\x0eproject_member\x18\x01 \x01(\x0e2\x1e.metalstack.api.v2.ProjectRoleR\rprojectMember\"_\n" +
- "!ProjectServiceRemoveMemberRequest\x12\"\n" +
- "\aproject\x18\x01 \x01(\tB\b\xbaH\x05r\x03\xb0\x01\x01R\aproject\x12\x16\n" +
- "\x06member\x18\x02 \x01(\tR\x06member\"$\n" +
- "\"ProjectServiceRemoveMemberResponse\"\x9d\x01\n" +
- "!ProjectServiceUpdateMemberRequest\x12\"\n" +
- "\aproject\x18\x01 \x01(\tB\b\xbaH\x05r\x03\xb0\x01\x01R\aproject\x12\x16\n" +
- "\x06member\x18\x02 \x01(\tR\x06member\x12<\n" +
- "\x04role\x18\x03 \x01(\x0e2\x1e.metalstack.api.v2.ProjectRoleB\b\xbaH\x05\x82\x01\x02\x10\x01R\x04role\"m\n" +
- "\"ProjectServiceUpdateMemberResponse\x12G\n" +
- "\x0eproject_member\x18\x01 \x01(\v2 .metalstack.api.v2.ProjectMemberR\rprojectMember\";\n" +
+ "\x06invite\x18\x01 \x01(\v2 .metalstack.api.v2.ProjectInviteR\x06invite\";\n" +
"!ProjectServiceInviteAcceptRequest\x12\x16\n" +
"\x06secret\x18\x01 \x01(\tR\x06secret\"a\n" +
"\"ProjectServiceInviteAcceptResponse\x12\x18\n" +
@@ -1936,7 +1421,7 @@ const file_metalstack_api_v2_project_proto_rawDesc = "" +
"!ProjectServiceInviteDeleteRequest\x12\"\n" +
"\aproject\x18\x01 \x01(\tB\b\xbaH\x05r\x03\xb0\x01\x01R\aproject\x12\x16\n" +
"\x06secret\x18\x02 \x01(\tR\x06secret\"$\n" +
- "\"ProjectServiceInviteDeleteResponse2\xe1\r\n" +
+ "\"ProjectServiceInviteDeleteResponse2\xdd\t\n" +
"\x0eProjectService\x12m\n" +
"\x04List\x12,.metalstack.api.v2.ProjectServiceListRequest\x1a-.metalstack.api.v2.ProjectServiceListResponse\"\b\xd8\xf3\x18\x02\xe0\xf3\x18\x02\x12m\n" +
"\x03Get\x12+.metalstack.api.v2.ProjectServiceGetRequest\x1a,.metalstack.api.v2.ProjectServiceGetResponse\"\v\xca\xf3\x18\x03\x01\x02\x03\xe0\xf3\x18\x02\x12u\n" +
@@ -1944,11 +1429,7 @@ const file_metalstack_api_v2_project_proto_rawDesc = "" +
"\xc2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x12t\n" +
"\x06Delete\x12..metalstack.api.v2.ProjectServiceDeleteRequest\x1a/.metalstack.api.v2.ProjectServiceDeleteResponse\"\t\xca\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12u\n" +
"\x06Update\x12..metalstack.api.v2.ProjectServiceUpdateRequest\x1a/.metalstack.api.v2.ProjectServiceUpdateResponse\"\n" +
- "\xca\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x12q\n" +
- "\x05Leave\x12-.metalstack.api.v2.ProjectServiceLeaveRequest\x1a..metalstack.api.v2.ProjectServiceLeaveResponse\"\t\xca\xf3\x18\x01\x03\xe0\xf3\x18\x01\x12}\n" +
- "\tAddMember\x121.metalstack.api.v2.ProjectServiceAddMemberRequest\x1a2.metalstack.api.v2.ProjectServiceAddMemberResponse\"\t\xca\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12\x86\x01\n" +
- "\fRemoveMember\x124.metalstack.api.v2.ProjectServiceRemoveMemberRequest\x1a5.metalstack.api.v2.ProjectServiceRemoveMemberResponse\"\t\xca\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12\x86\x01\n" +
- "\fUpdateMember\x124.metalstack.api.v2.ProjectServiceUpdateMemberRequest\x1a5.metalstack.api.v2.ProjectServiceUpdateMemberResponse\"\t\xca\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12t\n" +
+ "\xca\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x12t\n" +
"\x06Invite\x12..metalstack.api.v2.ProjectServiceInviteRequest\x1a/.metalstack.api.v2.ProjectServiceInviteResponse\"\t\xca\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12\x85\x01\n" +
"\fInviteAccept\x124.metalstack.api.v2.ProjectServiceInviteAcceptRequest\x1a5.metalstack.api.v2.ProjectServiceInviteAcceptResponse\"\b\xd8\xf3\x18\x02\xe0\xf3\x18\x01\x12\x86\x01\n" +
"\fInviteDelete\x124.metalstack.api.v2.ProjectServiceInviteDeleteRequest\x1a5.metalstack.api.v2.ProjectServiceInviteDeleteResponse\"\t\xca\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12\x83\x01\n" +
@@ -1968,107 +1449,82 @@ func file_metalstack_api_v2_project_proto_rawDescGZIP() []byte {
return file_metalstack_api_v2_project_proto_rawDescData
}
-var file_metalstack_api_v2_project_proto_msgTypes = make([]protoimpl.MessageInfo, 32)
+var file_metalstack_api_v2_project_proto_msgTypes = make([]protoimpl.MessageInfo, 23)
var file_metalstack_api_v2_project_proto_goTypes = []any{
(*Project)(nil), // 0: metalstack.api.v2.Project
- (*ProjectMember)(nil), // 1: metalstack.api.v2.ProjectMember
- (*ProjectInvite)(nil), // 2: metalstack.api.v2.ProjectInvite
- (*ProjectServiceListRequest)(nil), // 3: metalstack.api.v2.ProjectServiceListRequest
- (*ProjectQuery)(nil), // 4: metalstack.api.v2.ProjectQuery
- (*ProjectServiceListResponse)(nil), // 5: metalstack.api.v2.ProjectServiceListResponse
- (*ProjectServiceGetRequest)(nil), // 6: metalstack.api.v2.ProjectServiceGetRequest
- (*ProjectServiceGetResponse)(nil), // 7: metalstack.api.v2.ProjectServiceGetResponse
- (*ProjectServiceCreateRequest)(nil), // 8: metalstack.api.v2.ProjectServiceCreateRequest
- (*ProjectServiceCreateResponse)(nil), // 9: metalstack.api.v2.ProjectServiceCreateResponse
- (*ProjectServiceDeleteRequest)(nil), // 10: metalstack.api.v2.ProjectServiceDeleteRequest
- (*ProjectServiceDeleteResponse)(nil), // 11: metalstack.api.v2.ProjectServiceDeleteResponse
- (*ProjectServiceUpdateRequest)(nil), // 12: metalstack.api.v2.ProjectServiceUpdateRequest
- (*ProjectServiceUpdateResponse)(nil), // 13: metalstack.api.v2.ProjectServiceUpdateResponse
- (*ProjectServiceInviteRequest)(nil), // 14: metalstack.api.v2.ProjectServiceInviteRequest
- (*ProjectServiceInviteResponse)(nil), // 15: metalstack.api.v2.ProjectServiceInviteResponse
- (*ProjectServiceInvitesListRequest)(nil), // 16: metalstack.api.v2.ProjectServiceInvitesListRequest
- (*ProjectServiceInvitesListResponse)(nil), // 17: metalstack.api.v2.ProjectServiceInvitesListResponse
- (*ProjectServiceInviteGetRequest)(nil), // 18: metalstack.api.v2.ProjectServiceInviteGetRequest
- (*ProjectServiceInviteGetResponse)(nil), // 19: metalstack.api.v2.ProjectServiceInviteGetResponse
- (*ProjectServiceLeaveRequest)(nil), // 20: metalstack.api.v2.ProjectServiceLeaveRequest
- (*ProjectServiceLeaveResponse)(nil), // 21: metalstack.api.v2.ProjectServiceLeaveResponse
- (*ProjectServiceAddMemberRequest)(nil), // 22: metalstack.api.v2.ProjectServiceAddMemberRequest
- (*ProjectServiceAddMemberResponse)(nil), // 23: metalstack.api.v2.ProjectServiceAddMemberResponse
- (*ProjectServiceRemoveMemberRequest)(nil), // 24: metalstack.api.v2.ProjectServiceRemoveMemberRequest
- (*ProjectServiceRemoveMemberResponse)(nil), // 25: metalstack.api.v2.ProjectServiceRemoveMemberResponse
- (*ProjectServiceUpdateMemberRequest)(nil), // 26: metalstack.api.v2.ProjectServiceUpdateMemberRequest
- (*ProjectServiceUpdateMemberResponse)(nil), // 27: metalstack.api.v2.ProjectServiceUpdateMemberResponse
- (*ProjectServiceInviteAcceptRequest)(nil), // 28: metalstack.api.v2.ProjectServiceInviteAcceptRequest
- (*ProjectServiceInviteAcceptResponse)(nil), // 29: metalstack.api.v2.ProjectServiceInviteAcceptResponse
- (*ProjectServiceInviteDeleteRequest)(nil), // 30: metalstack.api.v2.ProjectServiceInviteDeleteRequest
- (*ProjectServiceInviteDeleteResponse)(nil), // 31: metalstack.api.v2.ProjectServiceInviteDeleteResponse
- (*Meta)(nil), // 32: metalstack.api.v2.Meta
- (ProjectRole)(0), // 33: metalstack.api.v2.ProjectRole
- (*timestamppb.Timestamp)(nil), // 34: google.protobuf.Timestamp
- (*Labels)(nil), // 35: metalstack.api.v2.Labels
- (*UpdateMeta)(nil), // 36: metalstack.api.v2.UpdateMeta
- (*UpdateLabels)(nil), // 37: metalstack.api.v2.UpdateLabels
+ (*ProjectInvite)(nil), // 1: metalstack.api.v2.ProjectInvite
+ (*ProjectServiceListRequest)(nil), // 2: metalstack.api.v2.ProjectServiceListRequest
+ (*ProjectQuery)(nil), // 3: metalstack.api.v2.ProjectQuery
+ (*ProjectServiceListResponse)(nil), // 4: metalstack.api.v2.ProjectServiceListResponse
+ (*ProjectServiceGetRequest)(nil), // 5: metalstack.api.v2.ProjectServiceGetRequest
+ (*ProjectServiceGetResponse)(nil), // 6: metalstack.api.v2.ProjectServiceGetResponse
+ (*ProjectServiceCreateRequest)(nil), // 7: metalstack.api.v2.ProjectServiceCreateRequest
+ (*ProjectServiceCreateResponse)(nil), // 8: metalstack.api.v2.ProjectServiceCreateResponse
+ (*ProjectServiceDeleteRequest)(nil), // 9: metalstack.api.v2.ProjectServiceDeleteRequest
+ (*ProjectServiceDeleteResponse)(nil), // 10: metalstack.api.v2.ProjectServiceDeleteResponse
+ (*ProjectServiceUpdateRequest)(nil), // 11: metalstack.api.v2.ProjectServiceUpdateRequest
+ (*ProjectServiceUpdateResponse)(nil), // 12: metalstack.api.v2.ProjectServiceUpdateResponse
+ (*ProjectServiceInviteRequest)(nil), // 13: metalstack.api.v2.ProjectServiceInviteRequest
+ (*ProjectServiceInviteResponse)(nil), // 14: metalstack.api.v2.ProjectServiceInviteResponse
+ (*ProjectServiceInvitesListRequest)(nil), // 15: metalstack.api.v2.ProjectServiceInvitesListRequest
+ (*ProjectServiceInvitesListResponse)(nil), // 16: metalstack.api.v2.ProjectServiceInvitesListResponse
+ (*ProjectServiceInviteGetRequest)(nil), // 17: metalstack.api.v2.ProjectServiceInviteGetRequest
+ (*ProjectServiceInviteGetResponse)(nil), // 18: metalstack.api.v2.ProjectServiceInviteGetResponse
+ (*ProjectServiceInviteAcceptRequest)(nil), // 19: metalstack.api.v2.ProjectServiceInviteAcceptRequest
+ (*ProjectServiceInviteAcceptResponse)(nil), // 20: metalstack.api.v2.ProjectServiceInviteAcceptResponse
+ (*ProjectServiceInviteDeleteRequest)(nil), // 21: metalstack.api.v2.ProjectServiceInviteDeleteRequest
+ (*ProjectServiceInviteDeleteResponse)(nil), // 22: metalstack.api.v2.ProjectServiceInviteDeleteResponse
+ (*Meta)(nil), // 23: metalstack.api.v2.Meta
+ (ProjectRole)(0), // 24: metalstack.api.v2.ProjectRole
+ (*timestamppb.Timestamp)(nil), // 25: google.protobuf.Timestamp
+ (*Labels)(nil), // 26: metalstack.api.v2.Labels
+ (*UpdateMeta)(nil), // 27: metalstack.api.v2.UpdateMeta
+ (*UpdateLabels)(nil), // 28: metalstack.api.v2.UpdateLabels
}
var file_metalstack_api_v2_project_proto_depIdxs = []int32{
- 32, // 0: metalstack.api.v2.Project.meta:type_name -> metalstack.api.v2.Meta
- 33, // 1: metalstack.api.v2.ProjectMember.role:type_name -> metalstack.api.v2.ProjectRole
- 34, // 2: metalstack.api.v2.ProjectMember.created_at:type_name -> google.protobuf.Timestamp
- 32, // 3: metalstack.api.v2.ProjectMember.meta:type_name -> metalstack.api.v2.Meta
- 33, // 4: metalstack.api.v2.ProjectInvite.role:type_name -> metalstack.api.v2.ProjectRole
- 34, // 5: metalstack.api.v2.ProjectInvite.expires_at:type_name -> google.protobuf.Timestamp
- 34, // 6: metalstack.api.v2.ProjectInvite.joined_at:type_name -> google.protobuf.Timestamp
- 4, // 7: metalstack.api.v2.ProjectServiceListRequest.query:type_name -> metalstack.api.v2.ProjectQuery
- 35, // 8: metalstack.api.v2.ProjectQuery.labels:type_name -> metalstack.api.v2.Labels
- 0, // 9: metalstack.api.v2.ProjectServiceListResponse.projects:type_name -> metalstack.api.v2.Project
- 0, // 10: metalstack.api.v2.ProjectServiceGetResponse.project:type_name -> metalstack.api.v2.Project
- 1, // 11: metalstack.api.v2.ProjectServiceGetResponse.project_members:type_name -> metalstack.api.v2.ProjectMember
- 35, // 12: metalstack.api.v2.ProjectServiceCreateRequest.labels:type_name -> metalstack.api.v2.Labels
- 0, // 13: metalstack.api.v2.ProjectServiceCreateResponse.project:type_name -> metalstack.api.v2.Project
- 0, // 14: metalstack.api.v2.ProjectServiceDeleteResponse.project:type_name -> metalstack.api.v2.Project
- 36, // 15: metalstack.api.v2.ProjectServiceUpdateRequest.update_meta:type_name -> metalstack.api.v2.UpdateMeta
- 37, // 16: metalstack.api.v2.ProjectServiceUpdateRequest.labels:type_name -> metalstack.api.v2.UpdateLabels
- 0, // 17: metalstack.api.v2.ProjectServiceUpdateResponse.project:type_name -> metalstack.api.v2.Project
- 33, // 18: metalstack.api.v2.ProjectServiceInviteRequest.role:type_name -> metalstack.api.v2.ProjectRole
- 2, // 19: metalstack.api.v2.ProjectServiceInviteResponse.invite:type_name -> metalstack.api.v2.ProjectInvite
- 2, // 20: metalstack.api.v2.ProjectServiceInvitesListResponse.invites:type_name -> metalstack.api.v2.ProjectInvite
- 2, // 21: metalstack.api.v2.ProjectServiceInviteGetResponse.invite:type_name -> metalstack.api.v2.ProjectInvite
- 33, // 22: metalstack.api.v2.ProjectServiceAddMemberRequest.role:type_name -> metalstack.api.v2.ProjectRole
- 33, // 23: metalstack.api.v2.ProjectServiceAddMemberResponse.project_member:type_name -> metalstack.api.v2.ProjectRole
- 33, // 24: metalstack.api.v2.ProjectServiceUpdateMemberRequest.role:type_name -> metalstack.api.v2.ProjectRole
- 1, // 25: metalstack.api.v2.ProjectServiceUpdateMemberResponse.project_member:type_name -> metalstack.api.v2.ProjectMember
- 3, // 26: metalstack.api.v2.ProjectService.List:input_type -> metalstack.api.v2.ProjectServiceListRequest
- 6, // 27: metalstack.api.v2.ProjectService.Get:input_type -> metalstack.api.v2.ProjectServiceGetRequest
- 8, // 28: metalstack.api.v2.ProjectService.Create:input_type -> metalstack.api.v2.ProjectServiceCreateRequest
- 10, // 29: metalstack.api.v2.ProjectService.Delete:input_type -> metalstack.api.v2.ProjectServiceDeleteRequest
- 12, // 30: metalstack.api.v2.ProjectService.Update:input_type -> metalstack.api.v2.ProjectServiceUpdateRequest
- 20, // 31: metalstack.api.v2.ProjectService.Leave:input_type -> metalstack.api.v2.ProjectServiceLeaveRequest
- 22, // 32: metalstack.api.v2.ProjectService.AddMember:input_type -> metalstack.api.v2.ProjectServiceAddMemberRequest
- 24, // 33: metalstack.api.v2.ProjectService.RemoveMember:input_type -> metalstack.api.v2.ProjectServiceRemoveMemberRequest
- 26, // 34: metalstack.api.v2.ProjectService.UpdateMember:input_type -> metalstack.api.v2.ProjectServiceUpdateMemberRequest
- 14, // 35: metalstack.api.v2.ProjectService.Invite:input_type -> metalstack.api.v2.ProjectServiceInviteRequest
- 28, // 36: metalstack.api.v2.ProjectService.InviteAccept:input_type -> metalstack.api.v2.ProjectServiceInviteAcceptRequest
- 30, // 37: metalstack.api.v2.ProjectService.InviteDelete:input_type -> metalstack.api.v2.ProjectServiceInviteDeleteRequest
- 16, // 38: metalstack.api.v2.ProjectService.InvitesList:input_type -> metalstack.api.v2.ProjectServiceInvitesListRequest
- 18, // 39: metalstack.api.v2.ProjectService.InviteGet:input_type -> metalstack.api.v2.ProjectServiceInviteGetRequest
- 5, // 40: metalstack.api.v2.ProjectService.List:output_type -> metalstack.api.v2.ProjectServiceListResponse
- 7, // 41: metalstack.api.v2.ProjectService.Get:output_type -> metalstack.api.v2.ProjectServiceGetResponse
- 9, // 42: metalstack.api.v2.ProjectService.Create:output_type -> metalstack.api.v2.ProjectServiceCreateResponse
- 11, // 43: metalstack.api.v2.ProjectService.Delete:output_type -> metalstack.api.v2.ProjectServiceDeleteResponse
- 13, // 44: metalstack.api.v2.ProjectService.Update:output_type -> metalstack.api.v2.ProjectServiceUpdateResponse
- 21, // 45: metalstack.api.v2.ProjectService.Leave:output_type -> metalstack.api.v2.ProjectServiceLeaveResponse
- 23, // 46: metalstack.api.v2.ProjectService.AddMember:output_type -> metalstack.api.v2.ProjectServiceAddMemberResponse
- 25, // 47: metalstack.api.v2.ProjectService.RemoveMember:output_type -> metalstack.api.v2.ProjectServiceRemoveMemberResponse
- 27, // 48: metalstack.api.v2.ProjectService.UpdateMember:output_type -> metalstack.api.v2.ProjectServiceUpdateMemberResponse
- 15, // 49: metalstack.api.v2.ProjectService.Invite:output_type -> metalstack.api.v2.ProjectServiceInviteResponse
- 29, // 50: metalstack.api.v2.ProjectService.InviteAccept:output_type -> metalstack.api.v2.ProjectServiceInviteAcceptResponse
- 31, // 51: metalstack.api.v2.ProjectService.InviteDelete:output_type -> metalstack.api.v2.ProjectServiceInviteDeleteResponse
- 17, // 52: metalstack.api.v2.ProjectService.InvitesList:output_type -> metalstack.api.v2.ProjectServiceInvitesListResponse
- 19, // 53: metalstack.api.v2.ProjectService.InviteGet:output_type -> metalstack.api.v2.ProjectServiceInviteGetResponse
- 40, // [40:54] is the sub-list for method output_type
- 26, // [26:40] is the sub-list for method input_type
- 26, // [26:26] is the sub-list for extension type_name
- 26, // [26:26] is the sub-list for extension extendee
- 0, // [0:26] is the sub-list for field type_name
+ 23, // 0: metalstack.api.v2.Project.meta:type_name -> metalstack.api.v2.Meta
+ 24, // 1: metalstack.api.v2.ProjectInvite.role:type_name -> metalstack.api.v2.ProjectRole
+ 25, // 2: metalstack.api.v2.ProjectInvite.expires_at:type_name -> google.protobuf.Timestamp
+ 25, // 3: metalstack.api.v2.ProjectInvite.joined_at:type_name -> google.protobuf.Timestamp
+ 3, // 4: metalstack.api.v2.ProjectServiceListRequest.query:type_name -> metalstack.api.v2.ProjectQuery
+ 26, // 5: metalstack.api.v2.ProjectQuery.labels:type_name -> metalstack.api.v2.Labels
+ 0, // 6: metalstack.api.v2.ProjectServiceListResponse.projects:type_name -> metalstack.api.v2.Project
+ 0, // 7: metalstack.api.v2.ProjectServiceGetResponse.project:type_name -> metalstack.api.v2.Project
+ 26, // 8: metalstack.api.v2.ProjectServiceCreateRequest.labels:type_name -> metalstack.api.v2.Labels
+ 0, // 9: metalstack.api.v2.ProjectServiceCreateResponse.project:type_name -> metalstack.api.v2.Project
+ 0, // 10: metalstack.api.v2.ProjectServiceDeleteResponse.project:type_name -> metalstack.api.v2.Project
+ 27, // 11: metalstack.api.v2.ProjectServiceUpdateRequest.update_meta:type_name -> metalstack.api.v2.UpdateMeta
+ 28, // 12: metalstack.api.v2.ProjectServiceUpdateRequest.labels:type_name -> metalstack.api.v2.UpdateLabels
+ 0, // 13: metalstack.api.v2.ProjectServiceUpdateResponse.project:type_name -> metalstack.api.v2.Project
+ 24, // 14: metalstack.api.v2.ProjectServiceInviteRequest.role:type_name -> metalstack.api.v2.ProjectRole
+ 1, // 15: metalstack.api.v2.ProjectServiceInviteResponse.invite:type_name -> metalstack.api.v2.ProjectInvite
+ 1, // 16: metalstack.api.v2.ProjectServiceInvitesListResponse.invites:type_name -> metalstack.api.v2.ProjectInvite
+ 1, // 17: metalstack.api.v2.ProjectServiceInviteGetResponse.invite:type_name -> metalstack.api.v2.ProjectInvite
+ 2, // 18: metalstack.api.v2.ProjectService.List:input_type -> metalstack.api.v2.ProjectServiceListRequest
+ 5, // 19: metalstack.api.v2.ProjectService.Get:input_type -> metalstack.api.v2.ProjectServiceGetRequest
+ 7, // 20: metalstack.api.v2.ProjectService.Create:input_type -> metalstack.api.v2.ProjectServiceCreateRequest
+ 9, // 21: metalstack.api.v2.ProjectService.Delete:input_type -> metalstack.api.v2.ProjectServiceDeleteRequest
+ 11, // 22: metalstack.api.v2.ProjectService.Update:input_type -> metalstack.api.v2.ProjectServiceUpdateRequest
+ 13, // 23: metalstack.api.v2.ProjectService.Invite:input_type -> metalstack.api.v2.ProjectServiceInviteRequest
+ 19, // 24: metalstack.api.v2.ProjectService.InviteAccept:input_type -> metalstack.api.v2.ProjectServiceInviteAcceptRequest
+ 21, // 25: metalstack.api.v2.ProjectService.InviteDelete:input_type -> metalstack.api.v2.ProjectServiceInviteDeleteRequest
+ 15, // 26: metalstack.api.v2.ProjectService.InvitesList:input_type -> metalstack.api.v2.ProjectServiceInvitesListRequest
+ 17, // 27: metalstack.api.v2.ProjectService.InviteGet:input_type -> metalstack.api.v2.ProjectServiceInviteGetRequest
+ 4, // 28: metalstack.api.v2.ProjectService.List:output_type -> metalstack.api.v2.ProjectServiceListResponse
+ 6, // 29: metalstack.api.v2.ProjectService.Get:output_type -> metalstack.api.v2.ProjectServiceGetResponse
+ 8, // 30: metalstack.api.v2.ProjectService.Create:output_type -> metalstack.api.v2.ProjectServiceCreateResponse
+ 10, // 31: metalstack.api.v2.ProjectService.Delete:output_type -> metalstack.api.v2.ProjectServiceDeleteResponse
+ 12, // 32: metalstack.api.v2.ProjectService.Update:output_type -> metalstack.api.v2.ProjectServiceUpdateResponse
+ 14, // 33: metalstack.api.v2.ProjectService.Invite:output_type -> metalstack.api.v2.ProjectServiceInviteResponse
+ 20, // 34: metalstack.api.v2.ProjectService.InviteAccept:output_type -> metalstack.api.v2.ProjectServiceInviteAcceptResponse
+ 22, // 35: metalstack.api.v2.ProjectService.InviteDelete:output_type -> metalstack.api.v2.ProjectServiceInviteDeleteResponse
+ 16, // 36: metalstack.api.v2.ProjectService.InvitesList:output_type -> metalstack.api.v2.ProjectServiceInvitesListResponse
+ 18, // 37: metalstack.api.v2.ProjectService.InviteGet:output_type -> metalstack.api.v2.ProjectServiceInviteGetResponse
+ 28, // [28:38] is the sub-list for method output_type
+ 18, // [18:28] is the sub-list for method input_type
+ 18, // [18:18] is the sub-list for extension type_name
+ 18, // [18:18] is the sub-list for extension extendee
+ 0, // [0:18] is the sub-list for field type_name
}
func init() { file_metalstack_api_v2_project_proto_init() }
@@ -2079,16 +1535,16 @@ func file_metalstack_api_v2_project_proto_init() {
file_metalstack_api_v2_common_proto_init()
file_metalstack_api_v2_predefined_rules_proto_init()
file_metalstack_api_v2_project_proto_msgTypes[0].OneofWrappers = []any{}
- file_metalstack_api_v2_project_proto_msgTypes[4].OneofWrappers = []any{}
- file_metalstack_api_v2_project_proto_msgTypes[8].OneofWrappers = []any{}
- file_metalstack_api_v2_project_proto_msgTypes[12].OneofWrappers = []any{}
+ file_metalstack_api_v2_project_proto_msgTypes[3].OneofWrappers = []any{}
+ file_metalstack_api_v2_project_proto_msgTypes[7].OneofWrappers = []any{}
+ file_metalstack_api_v2_project_proto_msgTypes[11].OneofWrappers = []any{}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: unsafe.Slice(unsafe.StringData(file_metalstack_api_v2_project_proto_rawDesc), len(file_metalstack_api_v2_project_proto_rawDesc)),
NumEnums: 0,
- NumMessages: 32,
+ NumMessages: 23,
NumExtensions: 0,
NumServices: 1,
},
diff --git a/go/metalstack/api/v2/project_member.pb.go b/go/metalstack/api/v2/project_member.pb.go
new file mode 100644
index 00000000..94f5fbc7
--- /dev/null
+++ b/go/metalstack/api/v2/project_member.pb.go
@@ -0,0 +1,940 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.36.12
+// protoc (unknown)
+// source: metalstack/api/v2/project_member.proto
+
+package apiv2
+
+import (
+ _ "buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ timestamppb "google.golang.org/protobuf/types/known/timestamppb"
+ reflect "reflect"
+ sync "sync"
+ unsafe "unsafe"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// ProjectMember defines a user that participates in a project.
+type ProjectMember struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Member is the user id of the member.
+ Member string `protobuf:"bytes,1,opt,name=member,proto3" json:"member,omitempty"`
+ // Role is the role of the member.
+ Role ProjectRole `protobuf:"varint,2,opt,name=role,proto3,enum=metalstack.api.v2.ProjectRole" json:"role,omitempty"`
+ // InheritedMembership indicates that this member has implicit permissions on the project through his membership within the tenant.
+ // This member does not have direct project membership but gains permissions on this project from the role he has in the tenant.
+ // Inherited memberships are not included in member lists for users with guest permission but only for direct tenant members.
+ InheritedMembership bool `protobuf:"varint,3,opt,name=inherited_membership,json=inheritedMembership,proto3" json:"inherited_membership,omitempty"`
+ // CreatedAt the date when the member was added to the project.
+ CreatedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
+ // Meta for this project member.
+ Meta *Meta `protobuf:"bytes,5,opt,name=meta,proto3" json:"meta,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *ProjectMember) Reset() {
+ *x = ProjectMember{}
+ mi := &file_metalstack_api_v2_project_member_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *ProjectMember) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProjectMember) ProtoMessage() {}
+
+func (x *ProjectMember) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_api_v2_project_member_proto_msgTypes[0]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProjectMember.ProtoReflect.Descriptor instead.
+func (*ProjectMember) Descriptor() ([]byte, []int) {
+ return file_metalstack_api_v2_project_member_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *ProjectMember) GetMember() string {
+ if x != nil {
+ return x.Member
+ }
+ return ""
+}
+
+func (x *ProjectMember) GetRole() ProjectRole {
+ if x != nil {
+ return x.Role
+ }
+ return ProjectRole_PROJECT_ROLE_UNSPECIFIED
+}
+
+func (x *ProjectMember) GetInheritedMembership() bool {
+ if x != nil {
+ return x.InheritedMembership
+ }
+ return false
+}
+
+func (x *ProjectMember) GetCreatedAt() *timestamppb.Timestamp {
+ if x != nil {
+ return x.CreatedAt
+ }
+ return nil
+}
+
+func (x *ProjectMember) GetMeta() *Meta {
+ if x != nil {
+ return x.Meta
+ }
+ return nil
+}
+
+// ProjectQuery is used to search projects.
+type ProjectMemberQuery struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Member is the user id of the member.
+ Member *string `protobuf:"bytes,1,opt,name=member,proto3,oneof" json:"member,omitempty"`
+ // Role is the role of the member.
+ Role *ProjectRole `protobuf:"varint,2,opt,name=role,proto3,enum=metalstack.api.v2.ProjectRole,oneof" json:"role,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *ProjectMemberQuery) Reset() {
+ *x = ProjectMemberQuery{}
+ mi := &file_metalstack_api_v2_project_member_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *ProjectMemberQuery) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProjectMemberQuery) ProtoMessage() {}
+
+func (x *ProjectMemberQuery) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_api_v2_project_member_proto_msgTypes[1]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProjectMemberQuery.ProtoReflect.Descriptor instead.
+func (*ProjectMemberQuery) Descriptor() ([]byte, []int) {
+ return file_metalstack_api_v2_project_member_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *ProjectMemberQuery) GetMember() string {
+ if x != nil && x.Member != nil {
+ return *x.Member
+ }
+ return ""
+}
+
+func (x *ProjectMemberQuery) GetRole() ProjectRole {
+ if x != nil && x.Role != nil {
+ return *x.Role
+ }
+ return ProjectRole_PROJECT_ROLE_UNSPECIFIED
+}
+
+// ProjectMemberServiceListRequest is the request payload to list all project members.
+type ProjectMemberServiceListRequest struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Project is the uuid of the project.
+ Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
+ // Query for projects.
+ Query *ProjectMemberQuery `protobuf:"bytes,2,opt,name=query,proto3" json:"query,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *ProjectMemberServiceListRequest) Reset() {
+ *x = ProjectMemberServiceListRequest{}
+ mi := &file_metalstack_api_v2_project_member_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *ProjectMemberServiceListRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProjectMemberServiceListRequest) ProtoMessage() {}
+
+func (x *ProjectMemberServiceListRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_api_v2_project_member_proto_msgTypes[2]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProjectMemberServiceListRequest.ProtoReflect.Descriptor instead.
+func (*ProjectMemberServiceListRequest) Descriptor() ([]byte, []int) {
+ return file_metalstack_api_v2_project_member_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *ProjectMemberServiceListRequest) GetProject() string {
+ if x != nil {
+ return x.Project
+ }
+ return ""
+}
+
+func (x *ProjectMemberServiceListRequest) GetQuery() *ProjectMemberQuery {
+ if x != nil {
+ return x.Query
+ }
+ return nil
+}
+
+// ProjectMemberServiceGetRequest is the request payload to get a project.
+type ProjectMemberServiceGetRequest struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Project is the uuid of the project.
+ Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
+ // Member is the user id of the member.
+ Member string `protobuf:"bytes,2,opt,name=member,proto3" json:"member,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *ProjectMemberServiceGetRequest) Reset() {
+ *x = ProjectMemberServiceGetRequest{}
+ mi := &file_metalstack_api_v2_project_member_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *ProjectMemberServiceGetRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProjectMemberServiceGetRequest) ProtoMessage() {}
+
+func (x *ProjectMemberServiceGetRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_api_v2_project_member_proto_msgTypes[3]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProjectMemberServiceGetRequest.ProtoReflect.Descriptor instead.
+func (*ProjectMemberServiceGetRequest) Descriptor() ([]byte, []int) {
+ return file_metalstack_api_v2_project_member_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *ProjectMemberServiceGetRequest) GetProject() string {
+ if x != nil {
+ return x.Project
+ }
+ return ""
+}
+
+func (x *ProjectMemberServiceGetRequest) GetMember() string {
+ if x != nil {
+ return x.Member
+ }
+ return ""
+}
+
+// ProjectMemberServiceCreateRequest is the request payload to Create a project.
+type ProjectMemberServiceCreateRequest struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Project is the uuid of the project.
+ Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
+ // Login of the member to add.
+ Member string `protobuf:"bytes,2,opt,name=member,proto3" json:"member,omitempty"`
+ // Role to assign to the new member.
+ Role ProjectRole `protobuf:"varint,3,opt,name=role,proto3,enum=metalstack.api.v2.ProjectRole" json:"role,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *ProjectMemberServiceCreateRequest) Reset() {
+ *x = ProjectMemberServiceCreateRequest{}
+ mi := &file_metalstack_api_v2_project_member_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *ProjectMemberServiceCreateRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProjectMemberServiceCreateRequest) ProtoMessage() {}
+
+func (x *ProjectMemberServiceCreateRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_api_v2_project_member_proto_msgTypes[4]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProjectMemberServiceCreateRequest.ProtoReflect.Descriptor instead.
+func (*ProjectMemberServiceCreateRequest) Descriptor() ([]byte, []int) {
+ return file_metalstack_api_v2_project_member_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *ProjectMemberServiceCreateRequest) GetProject() string {
+ if x != nil {
+ return x.Project
+ }
+ return ""
+}
+
+func (x *ProjectMemberServiceCreateRequest) GetMember() string {
+ if x != nil {
+ return x.Member
+ }
+ return ""
+}
+
+func (x *ProjectMemberServiceCreateRequest) GetRole() ProjectRole {
+ if x != nil {
+ return x.Role
+ }
+ return ProjectRole_PROJECT_ROLE_UNSPECIFIED
+}
+
+// ProjectMemberServiceUpdateRequest is the request payload to update a project.
+type ProjectMemberServiceUpdateRequest struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Project is the uuid of the project.
+ Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
+ // Member is the id of the member to remove from this project.
+ Member string `protobuf:"bytes,2,opt,name=member,proto3" json:"member,omitempty"`
+ // Role is the role in this project the user will get after the update.
+ Role ProjectRole `protobuf:"varint,3,opt,name=role,proto3,enum=metalstack.api.v2.ProjectRole" json:"role,omitempty"`
+ // UpdateMeta contains the timestamp and strategy to be used in this update request.
+ UpdateMeta *UpdateMeta `protobuf:"bytes,4,opt,name=update_meta,json=updateMeta,proto3" json:"update_meta,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *ProjectMemberServiceUpdateRequest) Reset() {
+ *x = ProjectMemberServiceUpdateRequest{}
+ mi := &file_metalstack_api_v2_project_member_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *ProjectMemberServiceUpdateRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProjectMemberServiceUpdateRequest) ProtoMessage() {}
+
+func (x *ProjectMemberServiceUpdateRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_api_v2_project_member_proto_msgTypes[5]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProjectMemberServiceUpdateRequest.ProtoReflect.Descriptor instead.
+func (*ProjectMemberServiceUpdateRequest) Descriptor() ([]byte, []int) {
+ return file_metalstack_api_v2_project_member_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *ProjectMemberServiceUpdateRequest) GetProject() string {
+ if x != nil {
+ return x.Project
+ }
+ return ""
+}
+
+func (x *ProjectMemberServiceUpdateRequest) GetMember() string {
+ if x != nil {
+ return x.Member
+ }
+ return ""
+}
+
+func (x *ProjectMemberServiceUpdateRequest) GetRole() ProjectRole {
+ if x != nil {
+ return x.Role
+ }
+ return ProjectRole_PROJECT_ROLE_UNSPECIFIED
+}
+
+func (x *ProjectMemberServiceUpdateRequest) GetUpdateMeta() *UpdateMeta {
+ if x != nil {
+ return x.UpdateMeta
+ }
+ return nil
+}
+
+// ProjectMemberServiceDeleteRequest is the request payload to delete a project.
+type ProjectMemberServiceDeleteRequest struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Project is the uuid of the project.
+ Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
+ // Member is the id of the member to remove from this project.
+ Member string `protobuf:"bytes,2,opt,name=member,proto3" json:"member,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *ProjectMemberServiceDeleteRequest) Reset() {
+ *x = ProjectMemberServiceDeleteRequest{}
+ mi := &file_metalstack_api_v2_project_member_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *ProjectMemberServiceDeleteRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProjectMemberServiceDeleteRequest) ProtoMessage() {}
+
+func (x *ProjectMemberServiceDeleteRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_api_v2_project_member_proto_msgTypes[6]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProjectMemberServiceDeleteRequest.ProtoReflect.Descriptor instead.
+func (*ProjectMemberServiceDeleteRequest) Descriptor() ([]byte, []int) {
+ return file_metalstack_api_v2_project_member_proto_rawDescGZIP(), []int{6}
+}
+
+func (x *ProjectMemberServiceDeleteRequest) GetProject() string {
+ if x != nil {
+ return x.Project
+ }
+ return ""
+}
+
+func (x *ProjectMemberServiceDeleteRequest) GetMember() string {
+ if x != nil {
+ return x.Member
+ }
+ return ""
+}
+
+// ProjectMemberServiceListResponse is the response payload to list all project members.
+type ProjectMemberServiceListResponse struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Members is a list of project members.
+ Members []*ProjectMember `protobuf:"bytes,1,rep,name=members,proto3" json:"members,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *ProjectMemberServiceListResponse) Reset() {
+ *x = ProjectMemberServiceListResponse{}
+ mi := &file_metalstack_api_v2_project_member_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *ProjectMemberServiceListResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProjectMemberServiceListResponse) ProtoMessage() {}
+
+func (x *ProjectMemberServiceListResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_api_v2_project_member_proto_msgTypes[7]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProjectMemberServiceListResponse.ProtoReflect.Descriptor instead.
+func (*ProjectMemberServiceListResponse) Descriptor() ([]byte, []int) {
+ return file_metalstack_api_v2_project_member_proto_rawDescGZIP(), []int{7}
+}
+
+func (x *ProjectMemberServiceListResponse) GetMembers() []*ProjectMember {
+ if x != nil {
+ return x.Members
+ }
+ return nil
+}
+
+// ProjectMemberServiceGetResponse is the response payload to get a projects.
+type ProjectMemberServiceGetResponse struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Member in this project, projects guests will only see direct project members and not implicit memberships from tenant permissions.
+ Member []*ProjectMember `protobuf:"bytes,1,rep,name=member,proto3" json:"member,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *ProjectMemberServiceGetResponse) Reset() {
+ *x = ProjectMemberServiceGetResponse{}
+ mi := &file_metalstack_api_v2_project_member_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *ProjectMemberServiceGetResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProjectMemberServiceGetResponse) ProtoMessage() {}
+
+func (x *ProjectMemberServiceGetResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_api_v2_project_member_proto_msgTypes[8]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProjectMemberServiceGetResponse.ProtoReflect.Descriptor instead.
+func (*ProjectMemberServiceGetResponse) Descriptor() ([]byte, []int) {
+ return file_metalstack_api_v2_project_member_proto_rawDescGZIP(), []int{8}
+}
+
+func (x *ProjectMemberServiceGetResponse) GetMember() []*ProjectMember {
+ if x != nil {
+ return x.Member
+ }
+ return nil
+}
+
+// ProjectMemberServiceCreateResponse is the response payload to create a project member.
+type ProjectMemberServiceCreateResponse struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Member is the created project member
+ Member *ProjectMember `protobuf:"bytes,1,opt,name=member,proto3" json:"member,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *ProjectMemberServiceCreateResponse) Reset() {
+ *x = ProjectMemberServiceCreateResponse{}
+ mi := &file_metalstack_api_v2_project_member_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *ProjectMemberServiceCreateResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProjectMemberServiceCreateResponse) ProtoMessage() {}
+
+func (x *ProjectMemberServiceCreateResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_api_v2_project_member_proto_msgTypes[9]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProjectMemberServiceCreateResponse.ProtoReflect.Descriptor instead.
+func (*ProjectMemberServiceCreateResponse) Descriptor() ([]byte, []int) {
+ return file_metalstack_api_v2_project_member_proto_rawDescGZIP(), []int{9}
+}
+
+func (x *ProjectMemberServiceCreateResponse) GetMember() *ProjectMember {
+ if x != nil {
+ return x.Member
+ }
+ return nil
+}
+
+// ProjectMemberServiceDeleteResponse is the response payload to delete a project member.
+type ProjectMemberServiceDeleteResponse struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Member is the deleted project member
+ Member *ProjectMember `protobuf:"bytes,1,opt,name=member,proto3" json:"member,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *ProjectMemberServiceDeleteResponse) Reset() {
+ *x = ProjectMemberServiceDeleteResponse{}
+ mi := &file_metalstack_api_v2_project_member_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *ProjectMemberServiceDeleteResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProjectMemberServiceDeleteResponse) ProtoMessage() {}
+
+func (x *ProjectMemberServiceDeleteResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_api_v2_project_member_proto_msgTypes[10]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProjectMemberServiceDeleteResponse.ProtoReflect.Descriptor instead.
+func (*ProjectMemberServiceDeleteResponse) Descriptor() ([]byte, []int) {
+ return file_metalstack_api_v2_project_member_proto_rawDescGZIP(), []int{10}
+}
+
+func (x *ProjectMemberServiceDeleteResponse) GetMember() *ProjectMember {
+ if x != nil {
+ return x.Member
+ }
+ return nil
+}
+
+// ProjectMemberServiceUpdateResponse is the response payload to update a project member.
+type ProjectMemberServiceUpdateResponse struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Member is the updated project member
+ Member *ProjectMember `protobuf:"bytes,1,opt,name=member,proto3" json:"member,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *ProjectMemberServiceUpdateResponse) Reset() {
+ *x = ProjectMemberServiceUpdateResponse{}
+ mi := &file_metalstack_api_v2_project_member_proto_msgTypes[11]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *ProjectMemberServiceUpdateResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProjectMemberServiceUpdateResponse) ProtoMessage() {}
+
+func (x *ProjectMemberServiceUpdateResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_api_v2_project_member_proto_msgTypes[11]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProjectMemberServiceUpdateResponse.ProtoReflect.Descriptor instead.
+func (*ProjectMemberServiceUpdateResponse) Descriptor() ([]byte, []int) {
+ return file_metalstack_api_v2_project_member_proto_rawDescGZIP(), []int{11}
+}
+
+func (x *ProjectMemberServiceUpdateResponse) GetMember() *ProjectMember {
+ if x != nil {
+ return x.Member
+ }
+ return nil
+}
+
+// ProjectMemberServiceLeaveRequest is used to leave a project. This way a member is not required to ask a project owner to remove him.
+type ProjectMemberServiceLeaveRequest struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Project of the uuid of the project that the user wants to leave.
+ Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *ProjectMemberServiceLeaveRequest) Reset() {
+ *x = ProjectMemberServiceLeaveRequest{}
+ mi := &file_metalstack_api_v2_project_member_proto_msgTypes[12]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *ProjectMemberServiceLeaveRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProjectMemberServiceLeaveRequest) ProtoMessage() {}
+
+func (x *ProjectMemberServiceLeaveRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_api_v2_project_member_proto_msgTypes[12]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProjectMemberServiceLeaveRequest.ProtoReflect.Descriptor instead.
+func (*ProjectMemberServiceLeaveRequest) Descriptor() ([]byte, []int) {
+ return file_metalstack_api_v2_project_member_proto_rawDescGZIP(), []int{12}
+}
+
+func (x *ProjectMemberServiceLeaveRequest) GetProject() string {
+ if x != nil {
+ return x.Project
+ }
+ return ""
+}
+
+// ProjectMemberServiceLeaveResponse is the response payload to a leave project request.
+type ProjectMemberServiceLeaveResponse struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Member is the member of this project.
+ Member *ProjectMember `protobuf:"bytes,1,opt,name=member,proto3" json:"member,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *ProjectMemberServiceLeaveResponse) Reset() {
+ *x = ProjectMemberServiceLeaveResponse{}
+ mi := &file_metalstack_api_v2_project_member_proto_msgTypes[13]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *ProjectMemberServiceLeaveResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProjectMemberServiceLeaveResponse) ProtoMessage() {}
+
+func (x *ProjectMemberServiceLeaveResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_api_v2_project_member_proto_msgTypes[13]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProjectMemberServiceLeaveResponse.ProtoReflect.Descriptor instead.
+func (*ProjectMemberServiceLeaveResponse) Descriptor() ([]byte, []int) {
+ return file_metalstack_api_v2_project_member_proto_rawDescGZIP(), []int{13}
+}
+
+func (x *ProjectMemberServiceLeaveResponse) GetMember() *ProjectMember {
+ if x != nil {
+ return x.Member
+ }
+ return nil
+}
+
+var File_metalstack_api_v2_project_member_proto protoreflect.FileDescriptor
+
+const file_metalstack_api_v2_project_member_proto_rawDesc = "" +
+ "\n" +
+ "&metalstack/api/v2/project_member.proto\x12\x11metalstack.api.v2\x1a\x1bbuf/validate/validate.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1emetalstack/api/v2/common.proto\x1a(metalstack/api/v2/predefined_rules.proto\"\x8d\x02\n" +
+ "\rProjectMember\x12#\n" +
+ "\x06member\x18\x01 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01R\x06member\x12<\n" +
+ "\x04role\x18\x02 \x01(\x0e2\x1e.metalstack.api.v2.ProjectRoleB\b\xbaH\x05\x82\x01\x02\x10\x01R\x04role\x121\n" +
+ "\x14inherited_membership\x18\x03 \x01(\bR\x13inheritedMembership\x129\n" +
+ "\n" +
+ "created_at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x12+\n" +
+ "\x04meta\x18\x05 \x01(\v2\x17.metalstack.api.v2.MetaR\x04meta\"\x95\x01\n" +
+ "\x12ProjectMemberQuery\x12(\n" +
+ "\x06member\x18\x01 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01H\x00R\x06member\x88\x01\x01\x12A\n" +
+ "\x04role\x18\x02 \x01(\x0e2\x1e.metalstack.api.v2.ProjectRoleB\b\xbaH\x05\x82\x01\x02\x10\x01H\x01R\x04role\x88\x01\x01B\t\n" +
+ "\a_memberB\a\n" +
+ "\x05_role\"\x82\x01\n" +
+ "\x1fProjectMemberServiceListRequest\x12\"\n" +
+ "\aproject\x18\x01 \x01(\tB\b\xbaH\x05r\x03\xb0\x01\x01R\aproject\x12;\n" +
+ "\x05query\x18\x02 \x01(\v2%.metalstack.api.v2.ProjectMemberQueryR\x05query\"i\n" +
+ "\x1eProjectMemberServiceGetRequest\x12\"\n" +
+ "\aproject\x18\x01 \x01(\tB\b\xbaH\x05r\x03\xb0\x01\x01R\aproject\x12#\n" +
+ "\x06member\x18\x02 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01R\x06member\"\xaa\x01\n" +
+ "!ProjectMemberServiceCreateRequest\x12\"\n" +
+ "\aproject\x18\x01 \x01(\tB\b\xbaH\x05r\x03\xb0\x01\x01R\aproject\x12#\n" +
+ "\x06member\x18\x02 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01R\x06member\x12<\n" +
+ "\x04role\x18\x03 \x01(\x0e2\x1e.metalstack.api.v2.ProjectRoleB\b\xbaH\x05\x82\x01\x02\x10\x01R\x04role\"\xe5\x01\n" +
+ "!ProjectMemberServiceUpdateRequest\x12\"\n" +
+ "\aproject\x18\x01 \x01(\tB\b\xbaH\x05r\x03\xb0\x01\x01R\aproject\x12\x16\n" +
+ "\x06member\x18\x02 \x01(\tR\x06member\x12<\n" +
+ "\x04role\x18\x03 \x01(\x0e2\x1e.metalstack.api.v2.ProjectRoleB\b\xbaH\x05\x82\x01\x02\x10\x01R\x04role\x12F\n" +
+ "\vupdate_meta\x18\x04 \x01(\v2\x1d.metalstack.api.v2.UpdateMetaB\x06\xbaH\x03\xc8\x01\x01R\n" +
+ "updateMeta\"_\n" +
+ "!ProjectMemberServiceDeleteRequest\x12\"\n" +
+ "\aproject\x18\x01 \x01(\tB\b\xbaH\x05r\x03\xb0\x01\x01R\aproject\x12\x16\n" +
+ "\x06member\x18\x02 \x01(\tR\x06member\"^\n" +
+ " ProjectMemberServiceListResponse\x12:\n" +
+ "\amembers\x18\x01 \x03(\v2 .metalstack.api.v2.ProjectMemberR\amembers\"[\n" +
+ "\x1fProjectMemberServiceGetResponse\x128\n" +
+ "\x06member\x18\x01 \x03(\v2 .metalstack.api.v2.ProjectMemberR\x06member\"^\n" +
+ "\"ProjectMemberServiceCreateResponse\x128\n" +
+ "\x06member\x18\x01 \x01(\v2 .metalstack.api.v2.ProjectMemberR\x06member\"^\n" +
+ "\"ProjectMemberServiceDeleteResponse\x128\n" +
+ "\x06member\x18\x01 \x01(\v2 .metalstack.api.v2.ProjectMemberR\x06member\"^\n" +
+ "\"ProjectMemberServiceUpdateResponse\x128\n" +
+ "\x06member\x18\x01 \x01(\v2 .metalstack.api.v2.ProjectMemberR\x06member\"F\n" +
+ " ProjectMemberServiceLeaveRequest\x12\"\n" +
+ "\aproject\x18\x01 \x01(\tB\b\xbaH\x05r\x03\xb0\x01\x01R\aproject\"]\n" +
+ "!ProjectMemberServiceLeaveResponse\x128\n" +
+ "\x06member\x18\x01 \x01(\v2 .metalstack.api.v2.ProjectMemberR\x06member2\x96\x06\n" +
+ "\x14ProjectMemberService\x12|\n" +
+ "\x04List\x122.metalstack.api.v2.ProjectMemberServiceListRequest\x1a3.metalstack.api.v2.ProjectMemberServiceListResponse\"\v\xca\xf3\x18\x03\x01\x02\x03\xe0\xf3\x18\x02\x12y\n" +
+ "\x03Get\x121.metalstack.api.v2.ProjectMemberServiceGetRequest\x1a2.metalstack.api.v2.ProjectMemberServiceGetResponse\"\v\xca\xf3\x18\x03\x01\x02\x03\xe0\xf3\x18\x02\x12\x80\x01\n" +
+ "\x06Create\x124.metalstack.api.v2.ProjectMemberServiceCreateRequest\x1a5.metalstack.api.v2.ProjectMemberServiceCreateResponse\"\t\xca\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12\x80\x01\n" +
+ "\x06Delete\x124.metalstack.api.v2.ProjectMemberServiceDeleteRequest\x1a5.metalstack.api.v2.ProjectMemberServiceDeleteResponse\"\t\xca\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12\x80\x01\n" +
+ "\x06Update\x124.metalstack.api.v2.ProjectMemberServiceUpdateRequest\x1a5.metalstack.api.v2.ProjectMemberServiceUpdateResponse\"\t\xca\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12|\n" +
+ "\x05Leave\x123.metalstack.api.v2.ProjectMemberServiceLeaveRequest\x1a4.metalstack.api.v2.ProjectMemberServiceLeaveResponse\"\b\xd8\xf3\x18\x02\xe0\xf3\x18\x01B\xc8\x01\n" +
+ "\x15com.metalstack.api.v2B\x12ProjectMemberProtoP\x01Z5github.com/metal-stack/api/go/metalstack/api/v2;apiv2\xa2\x02\x03MAX\xaa\x02\x11Metalstack.Api.V2\xca\x02\x11Metalstack\\Api\\V2\xe2\x02\x1dMetalstack\\Api\\V2\\GPBMetadata\xea\x02\x13Metalstack::Api::V2b\x06proto3"
+
+var (
+ file_metalstack_api_v2_project_member_proto_rawDescOnce sync.Once
+ file_metalstack_api_v2_project_member_proto_rawDescData []byte
+)
+
+func file_metalstack_api_v2_project_member_proto_rawDescGZIP() []byte {
+ file_metalstack_api_v2_project_member_proto_rawDescOnce.Do(func() {
+ file_metalstack_api_v2_project_member_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_metalstack_api_v2_project_member_proto_rawDesc), len(file_metalstack_api_v2_project_member_proto_rawDesc)))
+ })
+ return file_metalstack_api_v2_project_member_proto_rawDescData
+}
+
+var file_metalstack_api_v2_project_member_proto_msgTypes = make([]protoimpl.MessageInfo, 14)
+var file_metalstack_api_v2_project_member_proto_goTypes = []any{
+ (*ProjectMember)(nil), // 0: metalstack.api.v2.ProjectMember
+ (*ProjectMemberQuery)(nil), // 1: metalstack.api.v2.ProjectMemberQuery
+ (*ProjectMemberServiceListRequest)(nil), // 2: metalstack.api.v2.ProjectMemberServiceListRequest
+ (*ProjectMemberServiceGetRequest)(nil), // 3: metalstack.api.v2.ProjectMemberServiceGetRequest
+ (*ProjectMemberServiceCreateRequest)(nil), // 4: metalstack.api.v2.ProjectMemberServiceCreateRequest
+ (*ProjectMemberServiceUpdateRequest)(nil), // 5: metalstack.api.v2.ProjectMemberServiceUpdateRequest
+ (*ProjectMemberServiceDeleteRequest)(nil), // 6: metalstack.api.v2.ProjectMemberServiceDeleteRequest
+ (*ProjectMemberServiceListResponse)(nil), // 7: metalstack.api.v2.ProjectMemberServiceListResponse
+ (*ProjectMemberServiceGetResponse)(nil), // 8: metalstack.api.v2.ProjectMemberServiceGetResponse
+ (*ProjectMemberServiceCreateResponse)(nil), // 9: metalstack.api.v2.ProjectMemberServiceCreateResponse
+ (*ProjectMemberServiceDeleteResponse)(nil), // 10: metalstack.api.v2.ProjectMemberServiceDeleteResponse
+ (*ProjectMemberServiceUpdateResponse)(nil), // 11: metalstack.api.v2.ProjectMemberServiceUpdateResponse
+ (*ProjectMemberServiceLeaveRequest)(nil), // 12: metalstack.api.v2.ProjectMemberServiceLeaveRequest
+ (*ProjectMemberServiceLeaveResponse)(nil), // 13: metalstack.api.v2.ProjectMemberServiceLeaveResponse
+ (ProjectRole)(0), // 14: metalstack.api.v2.ProjectRole
+ (*timestamppb.Timestamp)(nil), // 15: google.protobuf.Timestamp
+ (*Meta)(nil), // 16: metalstack.api.v2.Meta
+ (*UpdateMeta)(nil), // 17: metalstack.api.v2.UpdateMeta
+}
+var file_metalstack_api_v2_project_member_proto_depIdxs = []int32{
+ 14, // 0: metalstack.api.v2.ProjectMember.role:type_name -> metalstack.api.v2.ProjectRole
+ 15, // 1: metalstack.api.v2.ProjectMember.created_at:type_name -> google.protobuf.Timestamp
+ 16, // 2: metalstack.api.v2.ProjectMember.meta:type_name -> metalstack.api.v2.Meta
+ 14, // 3: metalstack.api.v2.ProjectMemberQuery.role:type_name -> metalstack.api.v2.ProjectRole
+ 1, // 4: metalstack.api.v2.ProjectMemberServiceListRequest.query:type_name -> metalstack.api.v2.ProjectMemberQuery
+ 14, // 5: metalstack.api.v2.ProjectMemberServiceCreateRequest.role:type_name -> metalstack.api.v2.ProjectRole
+ 14, // 6: metalstack.api.v2.ProjectMemberServiceUpdateRequest.role:type_name -> metalstack.api.v2.ProjectRole
+ 17, // 7: metalstack.api.v2.ProjectMemberServiceUpdateRequest.update_meta:type_name -> metalstack.api.v2.UpdateMeta
+ 0, // 8: metalstack.api.v2.ProjectMemberServiceListResponse.members:type_name -> metalstack.api.v2.ProjectMember
+ 0, // 9: metalstack.api.v2.ProjectMemberServiceGetResponse.member:type_name -> metalstack.api.v2.ProjectMember
+ 0, // 10: metalstack.api.v2.ProjectMemberServiceCreateResponse.member:type_name -> metalstack.api.v2.ProjectMember
+ 0, // 11: metalstack.api.v2.ProjectMemberServiceDeleteResponse.member:type_name -> metalstack.api.v2.ProjectMember
+ 0, // 12: metalstack.api.v2.ProjectMemberServiceUpdateResponse.member:type_name -> metalstack.api.v2.ProjectMember
+ 0, // 13: metalstack.api.v2.ProjectMemberServiceLeaveResponse.member:type_name -> metalstack.api.v2.ProjectMember
+ 2, // 14: metalstack.api.v2.ProjectMemberService.List:input_type -> metalstack.api.v2.ProjectMemberServiceListRequest
+ 3, // 15: metalstack.api.v2.ProjectMemberService.Get:input_type -> metalstack.api.v2.ProjectMemberServiceGetRequest
+ 4, // 16: metalstack.api.v2.ProjectMemberService.Create:input_type -> metalstack.api.v2.ProjectMemberServiceCreateRequest
+ 6, // 17: metalstack.api.v2.ProjectMemberService.Delete:input_type -> metalstack.api.v2.ProjectMemberServiceDeleteRequest
+ 5, // 18: metalstack.api.v2.ProjectMemberService.Update:input_type -> metalstack.api.v2.ProjectMemberServiceUpdateRequest
+ 12, // 19: metalstack.api.v2.ProjectMemberService.Leave:input_type -> metalstack.api.v2.ProjectMemberServiceLeaveRequest
+ 7, // 20: metalstack.api.v2.ProjectMemberService.List:output_type -> metalstack.api.v2.ProjectMemberServiceListResponse
+ 8, // 21: metalstack.api.v2.ProjectMemberService.Get:output_type -> metalstack.api.v2.ProjectMemberServiceGetResponse
+ 9, // 22: metalstack.api.v2.ProjectMemberService.Create:output_type -> metalstack.api.v2.ProjectMemberServiceCreateResponse
+ 10, // 23: metalstack.api.v2.ProjectMemberService.Delete:output_type -> metalstack.api.v2.ProjectMemberServiceDeleteResponse
+ 11, // 24: metalstack.api.v2.ProjectMemberService.Update:output_type -> metalstack.api.v2.ProjectMemberServiceUpdateResponse
+ 13, // 25: metalstack.api.v2.ProjectMemberService.Leave:output_type -> metalstack.api.v2.ProjectMemberServiceLeaveResponse
+ 20, // [20:26] is the sub-list for method output_type
+ 14, // [14:20] is the sub-list for method input_type
+ 14, // [14:14] is the sub-list for extension type_name
+ 14, // [14:14] is the sub-list for extension extendee
+ 0, // [0:14] is the sub-list for field type_name
+}
+
+func init() { file_metalstack_api_v2_project_member_proto_init() }
+func file_metalstack_api_v2_project_member_proto_init() {
+ if File_metalstack_api_v2_project_member_proto != nil {
+ return
+ }
+ file_metalstack_api_v2_common_proto_init()
+ file_metalstack_api_v2_predefined_rules_proto_init()
+ file_metalstack_api_v2_project_member_proto_msgTypes[1].OneofWrappers = []any{}
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: unsafe.Slice(unsafe.StringData(file_metalstack_api_v2_project_member_proto_rawDesc), len(file_metalstack_api_v2_project_member_proto_rawDesc)),
+ NumEnums: 0,
+ NumMessages: 14,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_metalstack_api_v2_project_member_proto_goTypes,
+ DependencyIndexes: file_metalstack_api_v2_project_member_proto_depIdxs,
+ MessageInfos: file_metalstack_api_v2_project_member_proto_msgTypes,
+ }.Build()
+ File_metalstack_api_v2_project_member_proto = out.File
+ file_metalstack_api_v2_project_member_proto_goTypes = nil
+ file_metalstack_api_v2_project_member_proto_depIdxs = nil
+}
diff --git a/go/metalstack/api/v2/tenant.pb.go b/go/metalstack/api/v2/tenant.pb.go
index 8222e07b..45d056ce 100644
--- a/go/metalstack/api/v2/tenant.pb.go
+++ b/go/metalstack/api/v2/tenant.pb.go
@@ -123,88 +123,6 @@ func (x *Tenant) GetCreatedBy() string {
return ""
}
-// TenantMember defines a user that participates in a tenant.
-type TenantMember struct {
- state protoimpl.MessageState `protogen:"open.v1"`
- // Id is the user id of the member.
- Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
- // Role is the role of the member.
- Role TenantRole `protobuf:"varint,2,opt,name=role,proto3,enum=metalstack.api.v2.TenantRole" json:"role,omitempty"`
- // Projects in which a user is a direct member.
- Projects []string `protobuf:"bytes,3,rep,name=projects,proto3" json:"projects,omitempty"`
- // CreatedAt the date when the member was added to the tenant.
- CreatedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
- // Meta for this tenant member.
- Meta *Meta `protobuf:"bytes,5,opt,name=meta,proto3" json:"meta,omitempty"`
- unknownFields protoimpl.UnknownFields
- sizeCache protoimpl.SizeCache
-}
-
-func (x *TenantMember) Reset() {
- *x = TenantMember{}
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
-}
-
-func (x *TenantMember) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*TenantMember) ProtoMessage() {}
-
-func (x *TenantMember) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[1]
- if x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use TenantMember.ProtoReflect.Descriptor instead.
-func (*TenantMember) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *TenantMember) GetId() string {
- if x != nil {
- return x.Id
- }
- return ""
-}
-
-func (x *TenantMember) GetRole() TenantRole {
- if x != nil {
- return x.Role
- }
- return TenantRole_TENANT_ROLE_UNSPECIFIED
-}
-
-func (x *TenantMember) GetProjects() []string {
- if x != nil {
- return x.Projects
- }
- return nil
-}
-
-func (x *TenantMember) GetCreatedAt() *timestamppb.Timestamp {
- if x != nil {
- return x.CreatedAt
- }
- return nil
-}
-
-func (x *TenantMember) GetMeta() *Meta {
- if x != nil {
- return x.Meta
- }
- return nil
-}
-
// TenantInvite defines invite to tenant.
type TenantInvite struct {
state protoimpl.MessageState `protogen:"open.v1"`
@@ -232,7 +150,7 @@ type TenantInvite struct {
func (x *TenantInvite) Reset() {
*x = TenantInvite{}
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[2]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -244,7 +162,7 @@ func (x *TenantInvite) String() string {
func (*TenantInvite) ProtoMessage() {}
func (x *TenantInvite) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[2]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[1]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -257,7 +175,7 @@ func (x *TenantInvite) ProtoReflect() protoreflect.Message {
// Deprecated: Use TenantInvite.ProtoReflect.Descriptor instead.
func (*TenantInvite) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{2}
+ return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{1}
}
func (x *TenantInvite) GetSecret() string {
@@ -334,7 +252,7 @@ type TenantServiceListRequest struct {
func (x *TenantServiceListRequest) Reset() {
*x = TenantServiceListRequest{}
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[3]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -346,7 +264,7 @@ func (x *TenantServiceListRequest) String() string {
func (*TenantServiceListRequest) ProtoMessage() {}
func (x *TenantServiceListRequest) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[3]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[2]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -359,7 +277,7 @@ func (x *TenantServiceListRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use TenantServiceListRequest.ProtoReflect.Descriptor instead.
func (*TenantServiceListRequest) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{3}
+ return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{2}
}
func (x *TenantServiceListRequest) GetQuery() *TenantQuery {
@@ -386,7 +304,7 @@ type TenantQuery struct {
func (x *TenantQuery) Reset() {
*x = TenantQuery{}
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[4]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -398,7 +316,7 @@ func (x *TenantQuery) String() string {
func (*TenantQuery) ProtoMessage() {}
func (x *TenantQuery) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[4]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[3]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -411,7 +329,7 @@ func (x *TenantQuery) ProtoReflect() protoreflect.Message {
// Deprecated: Use TenantQuery.ProtoReflect.Descriptor instead.
func (*TenantQuery) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{4}
+ return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{3}
}
func (x *TenantQuery) GetLogin() string {
@@ -453,7 +371,7 @@ type TenantServiceGetRequest struct {
func (x *TenantServiceGetRequest) Reset() {
*x = TenantServiceGetRequest{}
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[5]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -465,7 +383,7 @@ func (x *TenantServiceGetRequest) String() string {
func (*TenantServiceGetRequest) ProtoMessage() {}
func (x *TenantServiceGetRequest) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[5]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[4]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -478,7 +396,7 @@ func (x *TenantServiceGetRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use TenantServiceGetRequest.ProtoReflect.Descriptor instead.
func (*TenantServiceGetRequest) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{5}
+ return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{4}
}
func (x *TenantServiceGetRequest) GetLogin() string {
@@ -507,7 +425,7 @@ type TenantServiceCreateRequest struct {
func (x *TenantServiceCreateRequest) Reset() {
*x = TenantServiceCreateRequest{}
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[6]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -519,7 +437,7 @@ func (x *TenantServiceCreateRequest) String() string {
func (*TenantServiceCreateRequest) ProtoMessage() {}
func (x *TenantServiceCreateRequest) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[6]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[5]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -532,7 +450,7 @@ func (x *TenantServiceCreateRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use TenantServiceCreateRequest.ProtoReflect.Descriptor instead.
func (*TenantServiceCreateRequest) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{6}
+ return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{5}
}
func (x *TenantServiceCreateRequest) GetName() string {
@@ -593,7 +511,7 @@ type TenantServiceUpdateRequest struct {
func (x *TenantServiceUpdateRequest) Reset() {
*x = TenantServiceUpdateRequest{}
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[7]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -605,7 +523,7 @@ func (x *TenantServiceUpdateRequest) String() string {
func (*TenantServiceUpdateRequest) ProtoMessage() {}
func (x *TenantServiceUpdateRequest) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[7]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[6]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -618,7 +536,7 @@ func (x *TenantServiceUpdateRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use TenantServiceUpdateRequest.ProtoReflect.Descriptor instead.
func (*TenantServiceUpdateRequest) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{7}
+ return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{6}
}
func (x *TenantServiceUpdateRequest) GetLogin() string {
@@ -681,7 +599,7 @@ type TenantServiceDeleteRequest struct {
func (x *TenantServiceDeleteRequest) Reset() {
*x = TenantServiceDeleteRequest{}
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[8]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -693,7 +611,7 @@ func (x *TenantServiceDeleteRequest) String() string {
func (*TenantServiceDeleteRequest) ProtoMessage() {}
func (x *TenantServiceDeleteRequest) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[8]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[7]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -706,7 +624,7 @@ func (x *TenantServiceDeleteRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use TenantServiceDeleteRequest.ProtoReflect.Descriptor instead.
func (*TenantServiceDeleteRequest) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{8}
+ return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{7}
}
func (x *TenantServiceDeleteRequest) GetLogin() string {
@@ -720,16 +638,14 @@ func (x *TenantServiceDeleteRequest) GetLogin() string {
type TenantServiceGetResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Tenant is the tenant.
- Tenant *Tenant `protobuf:"bytes,1,opt,name=tenant,proto3" json:"tenant,omitempty"`
- // TenantMembers of this tenant.
- TenantMembers []*TenantMember `protobuf:"bytes,2,rep,name=tenant_members,json=tenantMembers,proto3" json:"tenant_members,omitempty"`
+ Tenant *Tenant `protobuf:"bytes,1,opt,name=tenant,proto3" json:"tenant,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *TenantServiceGetResponse) Reset() {
*x = TenantServiceGetResponse{}
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[9]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -741,7 +657,7 @@ func (x *TenantServiceGetResponse) String() string {
func (*TenantServiceGetResponse) ProtoMessage() {}
func (x *TenantServiceGetResponse) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[9]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[8]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -754,7 +670,7 @@ func (x *TenantServiceGetResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use TenantServiceGetResponse.ProtoReflect.Descriptor instead.
func (*TenantServiceGetResponse) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{9}
+ return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{8}
}
func (x *TenantServiceGetResponse) GetTenant() *Tenant {
@@ -764,13 +680,6 @@ func (x *TenantServiceGetResponse) GetTenant() *Tenant {
return nil
}
-func (x *TenantServiceGetResponse) GetTenantMembers() []*TenantMember {
- if x != nil {
- return x.TenantMembers
- }
- return nil
-}
-
// TenantServiceListResponse is the response payload of the tenant list request.
type TenantServiceListResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
@@ -782,7 +691,7 @@ type TenantServiceListResponse struct {
func (x *TenantServiceListResponse) Reset() {
*x = TenantServiceListResponse{}
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[10]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -794,7 +703,7 @@ func (x *TenantServiceListResponse) String() string {
func (*TenantServiceListResponse) ProtoMessage() {}
func (x *TenantServiceListResponse) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[10]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[9]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -807,7 +716,7 @@ func (x *TenantServiceListResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use TenantServiceListResponse.ProtoReflect.Descriptor instead.
func (*TenantServiceListResponse) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{10}
+ return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{9}
}
func (x *TenantServiceListResponse) GetTenants() []*Tenant {
@@ -828,7 +737,7 @@ type TenantServiceCreateResponse struct {
func (x *TenantServiceCreateResponse) Reset() {
*x = TenantServiceCreateResponse{}
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[11]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -840,7 +749,7 @@ func (x *TenantServiceCreateResponse) String() string {
func (*TenantServiceCreateResponse) ProtoMessage() {}
func (x *TenantServiceCreateResponse) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[11]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[10]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -853,7 +762,7 @@ func (x *TenantServiceCreateResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use TenantServiceCreateResponse.ProtoReflect.Descriptor instead.
func (*TenantServiceCreateResponse) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{11}
+ return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{10}
}
func (x *TenantServiceCreateResponse) GetTenant() *Tenant {
@@ -874,7 +783,7 @@ type TenantServiceUpdateResponse struct {
func (x *TenantServiceUpdateResponse) Reset() {
*x = TenantServiceUpdateResponse{}
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[12]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -886,7 +795,7 @@ func (x *TenantServiceUpdateResponse) String() string {
func (*TenantServiceUpdateResponse) ProtoMessage() {}
func (x *TenantServiceUpdateResponse) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[12]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[11]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -899,7 +808,7 @@ func (x *TenantServiceUpdateResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use TenantServiceUpdateResponse.ProtoReflect.Descriptor instead.
func (*TenantServiceUpdateResponse) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{12}
+ return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{11}
}
func (x *TenantServiceUpdateResponse) GetTenant() *Tenant {
@@ -920,7 +829,7 @@ type TenantServiceDeleteResponse struct {
func (x *TenantServiceDeleteResponse) Reset() {
*x = TenantServiceDeleteResponse{}
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[13]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -932,7 +841,7 @@ func (x *TenantServiceDeleteResponse) String() string {
func (*TenantServiceDeleteResponse) ProtoMessage() {}
func (x *TenantServiceDeleteResponse) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[13]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[12]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -945,7 +854,7 @@ func (x *TenantServiceDeleteResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use TenantServiceDeleteResponse.ProtoReflect.Descriptor instead.
func (*TenantServiceDeleteResponse) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{13}
+ return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{12}
}
func (x *TenantServiceDeleteResponse) GetTenant() *Tenant {
@@ -968,7 +877,7 @@ type TenantServiceInviteRequest struct {
func (x *TenantServiceInviteRequest) Reset() {
*x = TenantServiceInviteRequest{}
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[14]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -980,7 +889,7 @@ func (x *TenantServiceInviteRequest) String() string {
func (*TenantServiceInviteRequest) ProtoMessage() {}
func (x *TenantServiceInviteRequest) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[14]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[13]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -993,7 +902,7 @@ func (x *TenantServiceInviteRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use TenantServiceInviteRequest.ProtoReflect.Descriptor instead.
func (*TenantServiceInviteRequest) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{14}
+ return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{13}
}
func (x *TenantServiceInviteRequest) GetLogin() string {
@@ -1021,7 +930,7 @@ type TenantServiceInviteResponse struct {
func (x *TenantServiceInviteResponse) Reset() {
*x = TenantServiceInviteResponse{}
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[15]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1033,7 +942,7 @@ func (x *TenantServiceInviteResponse) String() string {
func (*TenantServiceInviteResponse) ProtoMessage() {}
func (x *TenantServiceInviteResponse) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[15]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[14]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1046,7 +955,7 @@ func (x *TenantServiceInviteResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use TenantServiceInviteResponse.ProtoReflect.Descriptor instead.
func (*TenantServiceInviteResponse) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{15}
+ return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{14}
}
func (x *TenantServiceInviteResponse) GetInvite() *TenantInvite {
@@ -1067,7 +976,7 @@ type TenantServiceInvitesListRequest struct {
func (x *TenantServiceInvitesListRequest) Reset() {
*x = TenantServiceInvitesListRequest{}
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[16]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1079,7 +988,7 @@ func (x *TenantServiceInvitesListRequest) String() string {
func (*TenantServiceInvitesListRequest) ProtoMessage() {}
func (x *TenantServiceInvitesListRequest) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[16]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[15]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1092,7 +1001,7 @@ func (x *TenantServiceInvitesListRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use TenantServiceInvitesListRequest.ProtoReflect.Descriptor instead.
func (*TenantServiceInvitesListRequest) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{16}
+ return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{15}
}
func (x *TenantServiceInvitesListRequest) GetLogin() string {
@@ -1113,7 +1022,7 @@ type TenantServiceInvitesListResponse struct {
func (x *TenantServiceInvitesListResponse) Reset() {
*x = TenantServiceInvitesListResponse{}
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[17]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1125,7 +1034,7 @@ func (x *TenantServiceInvitesListResponse) String() string {
func (*TenantServiceInvitesListResponse) ProtoMessage() {}
func (x *TenantServiceInvitesListResponse) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[17]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[16]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1138,7 +1047,7 @@ func (x *TenantServiceInvitesListResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use TenantServiceInvitesListResponse.ProtoReflect.Descriptor instead.
func (*TenantServiceInvitesListResponse) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{17}
+ return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{16}
}
func (x *TenantServiceInvitesListResponse) GetInvites() []*TenantInvite {
@@ -1159,7 +1068,7 @@ type TenantServiceInviteGetRequest struct {
func (x *TenantServiceInviteGetRequest) Reset() {
*x = TenantServiceInviteGetRequest{}
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[18]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1171,7 +1080,7 @@ func (x *TenantServiceInviteGetRequest) String() string {
func (*TenantServiceInviteGetRequest) ProtoMessage() {}
func (x *TenantServiceInviteGetRequest) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[18]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[17]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1184,7 +1093,7 @@ func (x *TenantServiceInviteGetRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use TenantServiceInviteGetRequest.ProtoReflect.Descriptor instead.
func (*TenantServiceInviteGetRequest) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{18}
+ return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{17}
}
func (x *TenantServiceInviteGetRequest) GetSecret() string {
@@ -1205,7 +1114,7 @@ type TenantServiceInviteGetResponse struct {
func (x *TenantServiceInviteGetResponse) Reset() {
*x = TenantServiceInviteGetResponse{}
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[19]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1217,7 +1126,7 @@ func (x *TenantServiceInviteGetResponse) String() string {
func (*TenantServiceInviteGetResponse) ProtoMessage() {}
func (x *TenantServiceInviteGetResponse) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[19]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[18]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1230,7 +1139,7 @@ func (x *TenantServiceInviteGetResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use TenantServiceInviteGetResponse.ProtoReflect.Descriptor instead.
func (*TenantServiceInviteGetResponse) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{19}
+ return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{18}
}
func (x *TenantServiceInviteGetResponse) GetInvite() *TenantInvite {
@@ -1240,190 +1149,6 @@ func (x *TenantServiceInviteGetResponse) GetInvite() *TenantInvite {
return nil
}
-// TenantServiceRemoveMemberRequest is used to remove a member from a tenant.
-type TenantServiceRemoveMemberRequest struct {
- state protoimpl.MessageState `protogen:"open.v1"`
- // Login of the tenant.
- Login string `protobuf:"bytes,1,opt,name=login,proto3" json:"login,omitempty"`
- // Member is the id of the member to remove from this tenant.
- Member string `protobuf:"bytes,2,opt,name=member,proto3" json:"member,omitempty"`
- unknownFields protoimpl.UnknownFields
- sizeCache protoimpl.SizeCache
-}
-
-func (x *TenantServiceRemoveMemberRequest) Reset() {
- *x = TenantServiceRemoveMemberRequest{}
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[20]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
-}
-
-func (x *TenantServiceRemoveMemberRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*TenantServiceRemoveMemberRequest) ProtoMessage() {}
-
-func (x *TenantServiceRemoveMemberRequest) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[20]
- if x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use TenantServiceRemoveMemberRequest.ProtoReflect.Descriptor instead.
-func (*TenantServiceRemoveMemberRequest) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{20}
-}
-
-func (x *TenantServiceRemoveMemberRequest) GetLogin() string {
- if x != nil {
- return x.Login
- }
- return ""
-}
-
-func (x *TenantServiceRemoveMemberRequest) GetMember() string {
- if x != nil {
- return x.Member
- }
- return ""
-}
-
-// TenantServiceLeaveTenantRequest is used to leave a tenant.
-type TenantServiceLeaveRequest struct {
- state protoimpl.MessageState `protogen:"open.v1"`
- // Login of the tenant.
- Login string `protobuf:"bytes,1,opt,name=login,proto3" json:"login,omitempty"`
- unknownFields protoimpl.UnknownFields
- sizeCache protoimpl.SizeCache
-}
-
-func (x *TenantServiceLeaveRequest) Reset() {
- *x = TenantServiceLeaveRequest{}
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[21]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
-}
-
-func (x *TenantServiceLeaveRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*TenantServiceLeaveRequest) ProtoMessage() {}
-
-func (x *TenantServiceLeaveRequest) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[21]
- if x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use TenantServiceLeaveRequest.ProtoReflect.Descriptor instead.
-func (*TenantServiceLeaveRequest) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{21}
-}
-
-func (x *TenantServiceLeaveRequest) GetLogin() string {
- if x != nil {
- return x.Login
- }
- return ""
-}
-
-// TenantServiceLeaveTenantResponse is the response payload to a leave tenant request.
-type TenantServiceLeaveResponse struct {
- state protoimpl.MessageState `protogen:"open.v1"`
- unknownFields protoimpl.UnknownFields
- sizeCache protoimpl.SizeCache
-}
-
-func (x *TenantServiceLeaveResponse) Reset() {
- *x = TenantServiceLeaveResponse{}
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[22]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
-}
-
-func (x *TenantServiceLeaveResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*TenantServiceLeaveResponse) ProtoMessage() {}
-
-func (x *TenantServiceLeaveResponse) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[22]
- if x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use TenantServiceLeaveResponse.ProtoReflect.Descriptor instead.
-func (*TenantServiceLeaveResponse) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{22}
-}
-
-// TenantServiceRemoveMemberResponse is the response payload to a remove member request.
-type TenantServiceRemoveMemberResponse struct {
- state protoimpl.MessageState `protogen:"open.v1"`
- // TenantMember is the removed tenant member.
- TenantMember *TenantMember `protobuf:"bytes,1,opt,name=tenant_member,json=tenantMember,proto3" json:"tenant_member,omitempty"`
- unknownFields protoimpl.UnknownFields
- sizeCache protoimpl.SizeCache
-}
-
-func (x *TenantServiceRemoveMemberResponse) Reset() {
- *x = TenantServiceRemoveMemberResponse{}
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[23]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
-}
-
-func (x *TenantServiceRemoveMemberResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*TenantServiceRemoveMemberResponse) ProtoMessage() {}
-
-func (x *TenantServiceRemoveMemberResponse) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[23]
- if x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use TenantServiceRemoveMemberResponse.ProtoReflect.Descriptor instead.
-func (*TenantServiceRemoveMemberResponse) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{23}
-}
-
-func (x *TenantServiceRemoveMemberResponse) GetTenantMember() *TenantMember {
- if x != nil {
- return x.TenantMember
- }
- return nil
-}
-
// TenantServiceInviteAcceptRequest is the request payload to a accept invite request.
type TenantServiceInviteAcceptRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
@@ -1435,7 +1160,7 @@ type TenantServiceInviteAcceptRequest struct {
func (x *TenantServiceInviteAcceptRequest) Reset() {
*x = TenantServiceInviteAcceptRequest{}
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[24]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1447,7 +1172,7 @@ func (x *TenantServiceInviteAcceptRequest) String() string {
func (*TenantServiceInviteAcceptRequest) ProtoMessage() {}
func (x *TenantServiceInviteAcceptRequest) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[24]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[19]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1460,7 +1185,7 @@ func (x *TenantServiceInviteAcceptRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use TenantServiceInviteAcceptRequest.ProtoReflect.Descriptor instead.
func (*TenantServiceInviteAcceptRequest) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{24}
+ return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{19}
}
func (x *TenantServiceInviteAcceptRequest) GetSecret() string {
@@ -1483,7 +1208,7 @@ type TenantServiceInviteAcceptResponse struct {
func (x *TenantServiceInviteAcceptResponse) Reset() {
*x = TenantServiceInviteAcceptResponse{}
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[25]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1495,7 +1220,7 @@ func (x *TenantServiceInviteAcceptResponse) String() string {
func (*TenantServiceInviteAcceptResponse) ProtoMessage() {}
func (x *TenantServiceInviteAcceptResponse) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[25]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[20]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1508,7 +1233,7 @@ func (x *TenantServiceInviteAcceptResponse) ProtoReflect() protoreflect.Message
// Deprecated: Use TenantServiceInviteAcceptResponse.ProtoReflect.Descriptor instead.
func (*TenantServiceInviteAcceptResponse) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{25}
+ return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{20}
}
func (x *TenantServiceInviteAcceptResponse) GetTenant() string {
@@ -1538,7 +1263,7 @@ type TenantServiceInviteDeleteRequest struct {
func (x *TenantServiceInviteDeleteRequest) Reset() {
*x = TenantServiceInviteDeleteRequest{}
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[26]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1550,7 +1275,7 @@ func (x *TenantServiceInviteDeleteRequest) String() string {
func (*TenantServiceInviteDeleteRequest) ProtoMessage() {}
func (x *TenantServiceInviteDeleteRequest) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[26]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[21]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1563,7 +1288,7 @@ func (x *TenantServiceInviteDeleteRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use TenantServiceInviteDeleteRequest.ProtoReflect.Descriptor instead.
func (*TenantServiceInviteDeleteRequest) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{26}
+ return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{21}
}
func (x *TenantServiceInviteDeleteRequest) GetLogin() string {
@@ -1589,7 +1314,7 @@ type TenantServiceInviteDeleteResponse struct {
func (x *TenantServiceInviteDeleteResponse) Reset() {
*x = TenantServiceInviteDeleteResponse{}
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[27]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1601,7 +1326,7 @@ func (x *TenantServiceInviteDeleteResponse) String() string {
func (*TenantServiceInviteDeleteResponse) ProtoMessage() {}
func (x *TenantServiceInviteDeleteResponse) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[27]
+ mi := &file_metalstack_api_v2_tenant_proto_msgTypes[22]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1614,227 +1339,7 @@ func (x *TenantServiceInviteDeleteResponse) ProtoReflect() protoreflect.Message
// Deprecated: Use TenantServiceInviteDeleteResponse.ProtoReflect.Descriptor instead.
func (*TenantServiceInviteDeleteResponse) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{27}
-}
-
-// TenantServiceAddMemberRequest is the request payload for adding a member to a tenant.
-type TenantServiceAddMemberRequest struct {
- state protoimpl.MessageState `protogen:"open.v1"`
- // Login of the tenant to which the member will be added.
- Login string `protobuf:"bytes,1,opt,name=login,proto3" json:"login,omitempty"`
- // Login of the member to add.
- Member string `protobuf:"bytes,2,opt,name=member,proto3" json:"member,omitempty"`
- // Role to assign to the new member.
- Role TenantRole `protobuf:"varint,3,opt,name=role,proto3,enum=metalstack.api.v2.TenantRole" json:"role,omitempty"`
- unknownFields protoimpl.UnknownFields
- sizeCache protoimpl.SizeCache
-}
-
-func (x *TenantServiceAddMemberRequest) Reset() {
- *x = TenantServiceAddMemberRequest{}
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[28]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
-}
-
-func (x *TenantServiceAddMemberRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*TenantServiceAddMemberRequest) ProtoMessage() {}
-
-func (x *TenantServiceAddMemberRequest) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[28]
- if x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use TenantServiceAddMemberRequest.ProtoReflect.Descriptor instead.
-func (*TenantServiceAddMemberRequest) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{28}
-}
-
-func (x *TenantServiceAddMemberRequest) GetLogin() string {
- if x != nil {
- return x.Login
- }
- return ""
-}
-
-func (x *TenantServiceAddMemberRequest) GetMember() string {
- if x != nil {
- return x.Member
- }
- return ""
-}
-
-func (x *TenantServiceAddMemberRequest) GetRole() TenantRole {
- if x != nil {
- return x.Role
- }
- return TenantRole_TENANT_ROLE_UNSPECIFIED
-}
-
-// TenantServiceAddMemberResponse is the response payload for the add member request.
-type TenantServiceAddMemberResponse struct {
- state protoimpl.MessageState `protogen:"open.v1"`
- // TenantMember is the added tenant member.
- TenantMember *TenantMember `protobuf:"bytes,1,opt,name=tenant_member,json=tenantMember,proto3" json:"tenant_member,omitempty"`
- unknownFields protoimpl.UnknownFields
- sizeCache protoimpl.SizeCache
-}
-
-func (x *TenantServiceAddMemberResponse) Reset() {
- *x = TenantServiceAddMemberResponse{}
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[29]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
-}
-
-func (x *TenantServiceAddMemberResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*TenantServiceAddMemberResponse) ProtoMessage() {}
-
-func (x *TenantServiceAddMemberResponse) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[29]
- if x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use TenantServiceAddMemberResponse.ProtoReflect.Descriptor instead.
-func (*TenantServiceAddMemberResponse) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{29}
-}
-
-func (x *TenantServiceAddMemberResponse) GetTenantMember() *TenantMember {
- if x != nil {
- return x.TenantMember
- }
- return nil
-}
-
-// TenantServiceUpdateMemberRequest is used to update a member from a tenant.
-type TenantServiceUpdateMemberRequest struct {
- state protoimpl.MessageState `protogen:"open.v1"`
- // Login of the tenant.
- Login string `protobuf:"bytes,1,opt,name=login,proto3" json:"login,omitempty"`
- // Member is the id of the member to update in this tenant.
- Member string `protobuf:"bytes,2,opt,name=member,proto3" json:"member,omitempty"`
- // Role of this user in this tenant.
- Role TenantRole `protobuf:"varint,3,opt,name=role,proto3,enum=metalstack.api.v2.TenantRole" json:"role,omitempty"`
- unknownFields protoimpl.UnknownFields
- sizeCache protoimpl.SizeCache
-}
-
-func (x *TenantServiceUpdateMemberRequest) Reset() {
- *x = TenantServiceUpdateMemberRequest{}
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[30]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
-}
-
-func (x *TenantServiceUpdateMemberRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*TenantServiceUpdateMemberRequest) ProtoMessage() {}
-
-func (x *TenantServiceUpdateMemberRequest) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[30]
- if x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use TenantServiceUpdateMemberRequest.ProtoReflect.Descriptor instead.
-func (*TenantServiceUpdateMemberRequest) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{30}
-}
-
-func (x *TenantServiceUpdateMemberRequest) GetLogin() string {
- if x != nil {
- return x.Login
- }
- return ""
-}
-
-func (x *TenantServiceUpdateMemberRequest) GetMember() string {
- if x != nil {
- return x.Member
- }
- return ""
-}
-
-func (x *TenantServiceUpdateMemberRequest) GetRole() TenantRole {
- if x != nil {
- return x.Role
- }
- return TenantRole_TENANT_ROLE_UNSPECIFIED
-}
-
-// TenantServiceUpdateMemberResponse is the response payload to a update member request.
-type TenantServiceUpdateMemberResponse struct {
- state protoimpl.MessageState `protogen:"open.v1"`
- // TenantMember is the updated membership.
- TenantMember *TenantMember `protobuf:"bytes,1,opt,name=tenant_member,json=tenantMember,proto3" json:"tenant_member,omitempty"`
- unknownFields protoimpl.UnknownFields
- sizeCache protoimpl.SizeCache
-}
-
-func (x *TenantServiceUpdateMemberResponse) Reset() {
- *x = TenantServiceUpdateMemberResponse{}
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[31]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
-}
-
-func (x *TenantServiceUpdateMemberResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*TenantServiceUpdateMemberResponse) ProtoMessage() {}
-
-func (x *TenantServiceUpdateMemberResponse) ProtoReflect() protoreflect.Message {
- mi := &file_metalstack_api_v2_tenant_proto_msgTypes[31]
- if x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use TenantServiceUpdateMemberResponse.ProtoReflect.Descriptor instead.
-func (*TenantServiceUpdateMemberResponse) Descriptor() ([]byte, []int) {
- return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{31}
-}
-
-func (x *TenantServiceUpdateMemberResponse) GetTenantMember() *TenantMember {
- if x != nil {
- return x.TenantMember
- }
- return nil
+ return file_metalstack_api_v2_tenant_proto_rawDescGZIP(), []int{22}
}
var File_metalstack_api_v2_tenant_proto protoreflect.FileDescriptor
@@ -1851,14 +1356,7 @@ const file_metalstack_api_v2_tenant_proto_rawDesc = "" +
"\n" +
"avatar_url\x18\x06 \x01(\tB\v\xbaH\br\x06à³®\xb1\x02\x01R\tavatarUrl\x12\x1d\n" +
"\n" +
- "created_by\x18\a \x01(\tR\tcreatedBy\"\xec\x01\n" +
- "\fTenantMember\x12\x1b\n" +
- "\x02id\x18\x01 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01R\x02id\x12;\n" +
- "\x04role\x18\x02 \x01(\x0e2\x1d.metalstack.api.v2.TenantRoleB\b\xbaH\x05\x82\x01\x02\x10\x01R\x04role\x12\x1a\n" +
- "\bprojects\x18\x03 \x03(\tR\bprojects\x129\n" +
- "\n" +
- "created_at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x12+\n" +
- "\x04meta\x18\x05 \x01(\v2\x17.metalstack.api.v2.MetaR\x04meta\"\xfb\x02\n" +
+ "created_by\x18\a \x01(\tR\tcreatedBy\"\xfb\x02\n" +
"\fTenantInvite\x12\x16\n" +
"\x06secret\x18\x01 \x01(\tR\x06secret\x12#\n" +
"\rtarget_tenant\x18\x02 \x01(\tR\ftargetTenant\x12;\n" +
@@ -1909,10 +1407,9 @@ const file_metalstack_api_v2_tenant_proto_rawDesc = "" +
"\v_avatar_urlB\t\n" +
"\a_labels\"?\n" +
"\x1aTenantServiceDeleteRequest\x12!\n" +
- "\x05login\x18\x01 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01R\x05login\"\x95\x01\n" +
+ "\x05login\x18\x01 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01R\x05login\"M\n" +
"\x18TenantServiceGetResponse\x121\n" +
- "\x06tenant\x18\x01 \x01(\v2\x19.metalstack.api.v2.TenantR\x06tenant\x12F\n" +
- "\x0etenant_members\x18\x02 \x03(\v2\x1f.metalstack.api.v2.TenantMemberR\rtenantMembers\"P\n" +
+ "\x06tenant\x18\x01 \x01(\v2\x19.metalstack.api.v2.TenantR\x06tenant\"P\n" +
"\x19TenantServiceListResponse\x123\n" +
"\atenants\x18\x01 \x03(\v2\x19.metalstack.api.v2.TenantR\atenants\"P\n" +
"\x1bTenantServiceCreateResponse\x121\n" +
@@ -1933,15 +1430,7 @@ const file_metalstack_api_v2_tenant_proto_rawDesc = "" +
"\x1dTenantServiceInviteGetRequest\x12\x16\n" +
"\x06secret\x18\x01 \x01(\tR\x06secret\"Y\n" +
"\x1eTenantServiceInviteGetResponse\x127\n" +
- "\x06invite\x18\x01 \x01(\v2\x1f.metalstack.api.v2.TenantInviteR\x06invite\"]\n" +
- " TenantServiceRemoveMemberRequest\x12!\n" +
- "\x05login\x18\x01 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01R\x05login\x12\x16\n" +
- "\x06member\x18\x02 \x01(\tR\x06member\">\n" +
- "\x19TenantServiceLeaveRequest\x12!\n" +
- "\x05login\x18\x01 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01R\x05login\"\x1c\n" +
- "\x1aTenantServiceLeaveResponse\"i\n" +
- "!TenantServiceRemoveMemberResponse\x12D\n" +
- "\rtenant_member\x18\x01 \x01(\v2\x1f.metalstack.api.v2.TenantMemberR\ftenantMember\":\n" +
+ "\x06invite\x18\x01 \x01(\v2\x1f.metalstack.api.v2.TenantInviteR\x06invite\":\n" +
" TenantServiceInviteAcceptRequest\x12\x16\n" +
"\x06secret\x18\x01 \x01(\tR\x06secret\"\\\n" +
"!TenantServiceInviteAcceptResponse\x12\x16\n" +
@@ -1951,19 +1440,7 @@ const file_metalstack_api_v2_tenant_proto_rawDesc = "" +
" TenantServiceInviteDeleteRequest\x12!\n" +
"\x05login\x18\x01 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01R\x05login\x12\x16\n" +
"\x06secret\x18\x02 \x01(\tR\x06secret\"#\n" +
- "!TenantServiceInviteDeleteResponse\"\xa4\x01\n" +
- "\x1dTenantServiceAddMemberRequest\x12!\n" +
- "\x05login\x18\x01 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01R\x05login\x12#\n" +
- "\x06member\x18\x02 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01R\x06member\x12;\n" +
- "\x04role\x18\x03 \x01(\x0e2\x1d.metalstack.api.v2.TenantRoleB\b\xbaH\x05\x82\x01\x02\x10\x01R\x04role\"f\n" +
- "\x1eTenantServiceAddMemberResponse\x12D\n" +
- "\rtenant_member\x18\x01 \x01(\v2\x1f.metalstack.api.v2.TenantMemberR\ftenantMember\"\xa7\x01\n" +
- " TenantServiceUpdateMemberRequest\x12!\n" +
- "\x05login\x18\x01 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01R\x05login\x12#\n" +
- "\x06member\x18\x02 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01R\x06member\x12;\n" +
- "\x04role\x18\x03 \x01(\x0e2\x1d.metalstack.api.v2.TenantRoleB\b\xbaH\x05\x82\x01\x02\x10\x01R\x04role\"i\n" +
- "!TenantServiceUpdateMemberResponse\x12D\n" +
- "\rtenant_member\x18\x01 \x01(\v2\x1f.metalstack.api.v2.TenantMemberR\ftenantMember2\xc5\r\n" +
+ "!TenantServiceInviteDeleteResponse2\xc8\t\n" +
"\rTenantService\x12q\n" +
"\x06Create\x12-.metalstack.api.v2.TenantServiceCreateRequest\x1a..metalstack.api.v2.TenantServiceCreateResponse\"\b\xd8\xf3\x18\x02\xe0\xf3\x18\x01\x12k\n" +
"\x04List\x12+.metalstack.api.v2.TenantServiceListRequest\x1a,.metalstack.api.v2.TenantServiceListResponse\"\b\xd8\xf3\x18\x02\xe0\xf3\x18\x02\x12l\n" +
@@ -1971,12 +1448,7 @@ const file_metalstack_api_v2_tenant_proto_rawDesc = "" +
"\x06Update\x12-.metalstack.api.v2.TenantServiceUpdateRequest\x1a..metalstack.api.v2.TenantServiceUpdateResponse\"\n" +
"\xc2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x12s\n" +
"\x06Delete\x12-.metalstack.api.v2.TenantServiceDeleteRequest\x1a..metalstack.api.v2.TenantServiceDeleteResponse\"\n" +
- "\xc2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x12o\n" +
- "\x05Leave\x12,.metalstack.api.v2.TenantServiceLeaveRequest\x1a-.metalstack.api.v2.TenantServiceLeaveResponse\"\t\xc2\xf3\x18\x01\x03\xe0\xf3\x18\x01\x12|\n" +
- "\tAddMember\x120.metalstack.api.v2.TenantServiceAddMemberRequest\x1a1.metalstack.api.v2.TenantServiceAddMemberResponse\"\n" +
- "\xc2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x12\x84\x01\n" +
- "\fRemoveMember\x123.metalstack.api.v2.TenantServiceRemoveMemberRequest\x1a4.metalstack.api.v2.TenantServiceRemoveMemberResponse\"\t\xc2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12\x84\x01\n" +
- "\fUpdateMember\x123.metalstack.api.v2.TenantServiceUpdateMemberRequest\x1a4.metalstack.api.v2.TenantServiceUpdateMemberResponse\"\t\xc2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12r\n" +
+ "\xc2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x12r\n" +
"\x06Invite\x12-.metalstack.api.v2.TenantServiceInviteRequest\x1a..metalstack.api.v2.TenantServiceInviteResponse\"\t\xc2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12\x83\x01\n" +
"\fInviteAccept\x123.metalstack.api.v2.TenantServiceInviteAcceptRequest\x1a4.metalstack.api.v2.TenantServiceInviteAcceptResponse\"\b\xd8\xf3\x18\x02\xe0\xf3\x18\x01\x12\x84\x01\n" +
"\fInviteDelete\x123.metalstack.api.v2.TenantServiceInviteDeleteRequest\x1a4.metalstack.api.v2.TenantServiceInviteDeleteResponse\"\t\xc2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12\x81\x01\n" +
@@ -1996,110 +1468,84 @@ func file_metalstack_api_v2_tenant_proto_rawDescGZIP() []byte {
return file_metalstack_api_v2_tenant_proto_rawDescData
}
-var file_metalstack_api_v2_tenant_proto_msgTypes = make([]protoimpl.MessageInfo, 32)
+var file_metalstack_api_v2_tenant_proto_msgTypes = make([]protoimpl.MessageInfo, 23)
var file_metalstack_api_v2_tenant_proto_goTypes = []any{
(*Tenant)(nil), // 0: metalstack.api.v2.Tenant
- (*TenantMember)(nil), // 1: metalstack.api.v2.TenantMember
- (*TenantInvite)(nil), // 2: metalstack.api.v2.TenantInvite
- (*TenantServiceListRequest)(nil), // 3: metalstack.api.v2.TenantServiceListRequest
- (*TenantQuery)(nil), // 4: metalstack.api.v2.TenantQuery
- (*TenantServiceGetRequest)(nil), // 5: metalstack.api.v2.TenantServiceGetRequest
- (*TenantServiceCreateRequest)(nil), // 6: metalstack.api.v2.TenantServiceCreateRequest
- (*TenantServiceUpdateRequest)(nil), // 7: metalstack.api.v2.TenantServiceUpdateRequest
- (*TenantServiceDeleteRequest)(nil), // 8: metalstack.api.v2.TenantServiceDeleteRequest
- (*TenantServiceGetResponse)(nil), // 9: metalstack.api.v2.TenantServiceGetResponse
- (*TenantServiceListResponse)(nil), // 10: metalstack.api.v2.TenantServiceListResponse
- (*TenantServiceCreateResponse)(nil), // 11: metalstack.api.v2.TenantServiceCreateResponse
- (*TenantServiceUpdateResponse)(nil), // 12: metalstack.api.v2.TenantServiceUpdateResponse
- (*TenantServiceDeleteResponse)(nil), // 13: metalstack.api.v2.TenantServiceDeleteResponse
- (*TenantServiceInviteRequest)(nil), // 14: metalstack.api.v2.TenantServiceInviteRequest
- (*TenantServiceInviteResponse)(nil), // 15: metalstack.api.v2.TenantServiceInviteResponse
- (*TenantServiceInvitesListRequest)(nil), // 16: metalstack.api.v2.TenantServiceInvitesListRequest
- (*TenantServiceInvitesListResponse)(nil), // 17: metalstack.api.v2.TenantServiceInvitesListResponse
- (*TenantServiceInviteGetRequest)(nil), // 18: metalstack.api.v2.TenantServiceInviteGetRequest
- (*TenantServiceInviteGetResponse)(nil), // 19: metalstack.api.v2.TenantServiceInviteGetResponse
- (*TenantServiceRemoveMemberRequest)(nil), // 20: metalstack.api.v2.TenantServiceRemoveMemberRequest
- (*TenantServiceLeaveRequest)(nil), // 21: metalstack.api.v2.TenantServiceLeaveRequest
- (*TenantServiceLeaveResponse)(nil), // 22: metalstack.api.v2.TenantServiceLeaveResponse
- (*TenantServiceRemoveMemberResponse)(nil), // 23: metalstack.api.v2.TenantServiceRemoveMemberResponse
- (*TenantServiceInviteAcceptRequest)(nil), // 24: metalstack.api.v2.TenantServiceInviteAcceptRequest
- (*TenantServiceInviteAcceptResponse)(nil), // 25: metalstack.api.v2.TenantServiceInviteAcceptResponse
- (*TenantServiceInviteDeleteRequest)(nil), // 26: metalstack.api.v2.TenantServiceInviteDeleteRequest
- (*TenantServiceInviteDeleteResponse)(nil), // 27: metalstack.api.v2.TenantServiceInviteDeleteResponse
- (*TenantServiceAddMemberRequest)(nil), // 28: metalstack.api.v2.TenantServiceAddMemberRequest
- (*TenantServiceAddMemberResponse)(nil), // 29: metalstack.api.v2.TenantServiceAddMemberResponse
- (*TenantServiceUpdateMemberRequest)(nil), // 30: metalstack.api.v2.TenantServiceUpdateMemberRequest
- (*TenantServiceUpdateMemberResponse)(nil), // 31: metalstack.api.v2.TenantServiceUpdateMemberResponse
- (*Meta)(nil), // 32: metalstack.api.v2.Meta
- (TenantRole)(0), // 33: metalstack.api.v2.TenantRole
- (*timestamppb.Timestamp)(nil), // 34: google.protobuf.Timestamp
- (*Labels)(nil), // 35: metalstack.api.v2.Labels
- (*Paging)(nil), // 36: metalstack.api.v2.Paging
- (*UpdateMeta)(nil), // 37: metalstack.api.v2.UpdateMeta
- (*UpdateLabels)(nil), // 38: metalstack.api.v2.UpdateLabels
+ (*TenantInvite)(nil), // 1: metalstack.api.v2.TenantInvite
+ (*TenantServiceListRequest)(nil), // 2: metalstack.api.v2.TenantServiceListRequest
+ (*TenantQuery)(nil), // 3: metalstack.api.v2.TenantQuery
+ (*TenantServiceGetRequest)(nil), // 4: metalstack.api.v2.TenantServiceGetRequest
+ (*TenantServiceCreateRequest)(nil), // 5: metalstack.api.v2.TenantServiceCreateRequest
+ (*TenantServiceUpdateRequest)(nil), // 6: metalstack.api.v2.TenantServiceUpdateRequest
+ (*TenantServiceDeleteRequest)(nil), // 7: metalstack.api.v2.TenantServiceDeleteRequest
+ (*TenantServiceGetResponse)(nil), // 8: metalstack.api.v2.TenantServiceGetResponse
+ (*TenantServiceListResponse)(nil), // 9: metalstack.api.v2.TenantServiceListResponse
+ (*TenantServiceCreateResponse)(nil), // 10: metalstack.api.v2.TenantServiceCreateResponse
+ (*TenantServiceUpdateResponse)(nil), // 11: metalstack.api.v2.TenantServiceUpdateResponse
+ (*TenantServiceDeleteResponse)(nil), // 12: metalstack.api.v2.TenantServiceDeleteResponse
+ (*TenantServiceInviteRequest)(nil), // 13: metalstack.api.v2.TenantServiceInviteRequest
+ (*TenantServiceInviteResponse)(nil), // 14: metalstack.api.v2.TenantServiceInviteResponse
+ (*TenantServiceInvitesListRequest)(nil), // 15: metalstack.api.v2.TenantServiceInvitesListRequest
+ (*TenantServiceInvitesListResponse)(nil), // 16: metalstack.api.v2.TenantServiceInvitesListResponse
+ (*TenantServiceInviteGetRequest)(nil), // 17: metalstack.api.v2.TenantServiceInviteGetRequest
+ (*TenantServiceInviteGetResponse)(nil), // 18: metalstack.api.v2.TenantServiceInviteGetResponse
+ (*TenantServiceInviteAcceptRequest)(nil), // 19: metalstack.api.v2.TenantServiceInviteAcceptRequest
+ (*TenantServiceInviteAcceptResponse)(nil), // 20: metalstack.api.v2.TenantServiceInviteAcceptResponse
+ (*TenantServiceInviteDeleteRequest)(nil), // 21: metalstack.api.v2.TenantServiceInviteDeleteRequest
+ (*TenantServiceInviteDeleteResponse)(nil), // 22: metalstack.api.v2.TenantServiceInviteDeleteResponse
+ (*Meta)(nil), // 23: metalstack.api.v2.Meta
+ (TenantRole)(0), // 24: metalstack.api.v2.TenantRole
+ (*timestamppb.Timestamp)(nil), // 25: google.protobuf.Timestamp
+ (*Labels)(nil), // 26: metalstack.api.v2.Labels
+ (*Paging)(nil), // 27: metalstack.api.v2.Paging
+ (*UpdateMeta)(nil), // 28: metalstack.api.v2.UpdateMeta
+ (*UpdateLabels)(nil), // 29: metalstack.api.v2.UpdateLabels
}
var file_metalstack_api_v2_tenant_proto_depIdxs = []int32{
- 32, // 0: metalstack.api.v2.Tenant.meta:type_name -> metalstack.api.v2.Meta
- 33, // 1: metalstack.api.v2.TenantMember.role:type_name -> metalstack.api.v2.TenantRole
- 34, // 2: metalstack.api.v2.TenantMember.created_at:type_name -> google.protobuf.Timestamp
- 32, // 3: metalstack.api.v2.TenantMember.meta:type_name -> metalstack.api.v2.Meta
- 33, // 4: metalstack.api.v2.TenantInvite.role:type_name -> metalstack.api.v2.TenantRole
- 34, // 5: metalstack.api.v2.TenantInvite.expires_at:type_name -> google.protobuf.Timestamp
- 34, // 6: metalstack.api.v2.TenantInvite.joined_at:type_name -> google.protobuf.Timestamp
- 4, // 7: metalstack.api.v2.TenantServiceListRequest.query:type_name -> metalstack.api.v2.TenantQuery
- 35, // 8: metalstack.api.v2.TenantQuery.labels:type_name -> metalstack.api.v2.Labels
- 36, // 9: metalstack.api.v2.TenantQuery.paging:type_name -> metalstack.api.v2.Paging
- 35, // 10: metalstack.api.v2.TenantServiceCreateRequest.labels:type_name -> metalstack.api.v2.Labels
- 37, // 11: metalstack.api.v2.TenantServiceUpdateRequest.update_meta:type_name -> metalstack.api.v2.UpdateMeta
- 38, // 12: metalstack.api.v2.TenantServiceUpdateRequest.labels:type_name -> metalstack.api.v2.UpdateLabels
- 0, // 13: metalstack.api.v2.TenantServiceGetResponse.tenant:type_name -> metalstack.api.v2.Tenant
- 1, // 14: metalstack.api.v2.TenantServiceGetResponse.tenant_members:type_name -> metalstack.api.v2.TenantMember
- 0, // 15: metalstack.api.v2.TenantServiceListResponse.tenants:type_name -> metalstack.api.v2.Tenant
- 0, // 16: metalstack.api.v2.TenantServiceCreateResponse.tenant:type_name -> metalstack.api.v2.Tenant
- 0, // 17: metalstack.api.v2.TenantServiceUpdateResponse.tenant:type_name -> metalstack.api.v2.Tenant
- 0, // 18: metalstack.api.v2.TenantServiceDeleteResponse.tenant:type_name -> metalstack.api.v2.Tenant
- 33, // 19: metalstack.api.v2.TenantServiceInviteRequest.role:type_name -> metalstack.api.v2.TenantRole
- 2, // 20: metalstack.api.v2.TenantServiceInviteResponse.invite:type_name -> metalstack.api.v2.TenantInvite
- 2, // 21: metalstack.api.v2.TenantServiceInvitesListResponse.invites:type_name -> metalstack.api.v2.TenantInvite
- 2, // 22: metalstack.api.v2.TenantServiceInviteGetResponse.invite:type_name -> metalstack.api.v2.TenantInvite
- 1, // 23: metalstack.api.v2.TenantServiceRemoveMemberResponse.tenant_member:type_name -> metalstack.api.v2.TenantMember
- 33, // 24: metalstack.api.v2.TenantServiceAddMemberRequest.role:type_name -> metalstack.api.v2.TenantRole
- 1, // 25: metalstack.api.v2.TenantServiceAddMemberResponse.tenant_member:type_name -> metalstack.api.v2.TenantMember
- 33, // 26: metalstack.api.v2.TenantServiceUpdateMemberRequest.role:type_name -> metalstack.api.v2.TenantRole
- 1, // 27: metalstack.api.v2.TenantServiceUpdateMemberResponse.tenant_member:type_name -> metalstack.api.v2.TenantMember
- 6, // 28: metalstack.api.v2.TenantService.Create:input_type -> metalstack.api.v2.TenantServiceCreateRequest
- 3, // 29: metalstack.api.v2.TenantService.List:input_type -> metalstack.api.v2.TenantServiceListRequest
- 5, // 30: metalstack.api.v2.TenantService.Get:input_type -> metalstack.api.v2.TenantServiceGetRequest
- 7, // 31: metalstack.api.v2.TenantService.Update:input_type -> metalstack.api.v2.TenantServiceUpdateRequest
- 8, // 32: metalstack.api.v2.TenantService.Delete:input_type -> metalstack.api.v2.TenantServiceDeleteRequest
- 21, // 33: metalstack.api.v2.TenantService.Leave:input_type -> metalstack.api.v2.TenantServiceLeaveRequest
- 28, // 34: metalstack.api.v2.TenantService.AddMember:input_type -> metalstack.api.v2.TenantServiceAddMemberRequest
- 20, // 35: metalstack.api.v2.TenantService.RemoveMember:input_type -> metalstack.api.v2.TenantServiceRemoveMemberRequest
- 30, // 36: metalstack.api.v2.TenantService.UpdateMember:input_type -> metalstack.api.v2.TenantServiceUpdateMemberRequest
- 14, // 37: metalstack.api.v2.TenantService.Invite:input_type -> metalstack.api.v2.TenantServiceInviteRequest
- 24, // 38: metalstack.api.v2.TenantService.InviteAccept:input_type -> metalstack.api.v2.TenantServiceInviteAcceptRequest
- 26, // 39: metalstack.api.v2.TenantService.InviteDelete:input_type -> metalstack.api.v2.TenantServiceInviteDeleteRequest
- 16, // 40: metalstack.api.v2.TenantService.InvitesList:input_type -> metalstack.api.v2.TenantServiceInvitesListRequest
- 18, // 41: metalstack.api.v2.TenantService.InviteGet:input_type -> metalstack.api.v2.TenantServiceInviteGetRequest
- 11, // 42: metalstack.api.v2.TenantService.Create:output_type -> metalstack.api.v2.TenantServiceCreateResponse
- 10, // 43: metalstack.api.v2.TenantService.List:output_type -> metalstack.api.v2.TenantServiceListResponse
- 9, // 44: metalstack.api.v2.TenantService.Get:output_type -> metalstack.api.v2.TenantServiceGetResponse
- 12, // 45: metalstack.api.v2.TenantService.Update:output_type -> metalstack.api.v2.TenantServiceUpdateResponse
- 13, // 46: metalstack.api.v2.TenantService.Delete:output_type -> metalstack.api.v2.TenantServiceDeleteResponse
- 22, // 47: metalstack.api.v2.TenantService.Leave:output_type -> metalstack.api.v2.TenantServiceLeaveResponse
- 29, // 48: metalstack.api.v2.TenantService.AddMember:output_type -> metalstack.api.v2.TenantServiceAddMemberResponse
- 23, // 49: metalstack.api.v2.TenantService.RemoveMember:output_type -> metalstack.api.v2.TenantServiceRemoveMemberResponse
- 31, // 50: metalstack.api.v2.TenantService.UpdateMember:output_type -> metalstack.api.v2.TenantServiceUpdateMemberResponse
- 15, // 51: metalstack.api.v2.TenantService.Invite:output_type -> metalstack.api.v2.TenantServiceInviteResponse
- 25, // 52: metalstack.api.v2.TenantService.InviteAccept:output_type -> metalstack.api.v2.TenantServiceInviteAcceptResponse
- 27, // 53: metalstack.api.v2.TenantService.InviteDelete:output_type -> metalstack.api.v2.TenantServiceInviteDeleteResponse
- 17, // 54: metalstack.api.v2.TenantService.InvitesList:output_type -> metalstack.api.v2.TenantServiceInvitesListResponse
- 19, // 55: metalstack.api.v2.TenantService.InviteGet:output_type -> metalstack.api.v2.TenantServiceInviteGetResponse
- 42, // [42:56] is the sub-list for method output_type
- 28, // [28:42] is the sub-list for method input_type
- 28, // [28:28] is the sub-list for extension type_name
- 28, // [28:28] is the sub-list for extension extendee
- 0, // [0:28] is the sub-list for field type_name
+ 23, // 0: metalstack.api.v2.Tenant.meta:type_name -> metalstack.api.v2.Meta
+ 24, // 1: metalstack.api.v2.TenantInvite.role:type_name -> metalstack.api.v2.TenantRole
+ 25, // 2: metalstack.api.v2.TenantInvite.expires_at:type_name -> google.protobuf.Timestamp
+ 25, // 3: metalstack.api.v2.TenantInvite.joined_at:type_name -> google.protobuf.Timestamp
+ 3, // 4: metalstack.api.v2.TenantServiceListRequest.query:type_name -> metalstack.api.v2.TenantQuery
+ 26, // 5: metalstack.api.v2.TenantQuery.labels:type_name -> metalstack.api.v2.Labels
+ 27, // 6: metalstack.api.v2.TenantQuery.paging:type_name -> metalstack.api.v2.Paging
+ 26, // 7: metalstack.api.v2.TenantServiceCreateRequest.labels:type_name -> metalstack.api.v2.Labels
+ 28, // 8: metalstack.api.v2.TenantServiceUpdateRequest.update_meta:type_name -> metalstack.api.v2.UpdateMeta
+ 29, // 9: metalstack.api.v2.TenantServiceUpdateRequest.labels:type_name -> metalstack.api.v2.UpdateLabels
+ 0, // 10: metalstack.api.v2.TenantServiceGetResponse.tenant:type_name -> metalstack.api.v2.Tenant
+ 0, // 11: metalstack.api.v2.TenantServiceListResponse.tenants:type_name -> metalstack.api.v2.Tenant
+ 0, // 12: metalstack.api.v2.TenantServiceCreateResponse.tenant:type_name -> metalstack.api.v2.Tenant
+ 0, // 13: metalstack.api.v2.TenantServiceUpdateResponse.tenant:type_name -> metalstack.api.v2.Tenant
+ 0, // 14: metalstack.api.v2.TenantServiceDeleteResponse.tenant:type_name -> metalstack.api.v2.Tenant
+ 24, // 15: metalstack.api.v2.TenantServiceInviteRequest.role:type_name -> metalstack.api.v2.TenantRole
+ 1, // 16: metalstack.api.v2.TenantServiceInviteResponse.invite:type_name -> metalstack.api.v2.TenantInvite
+ 1, // 17: metalstack.api.v2.TenantServiceInvitesListResponse.invites:type_name -> metalstack.api.v2.TenantInvite
+ 1, // 18: metalstack.api.v2.TenantServiceInviteGetResponse.invite:type_name -> metalstack.api.v2.TenantInvite
+ 5, // 19: metalstack.api.v2.TenantService.Create:input_type -> metalstack.api.v2.TenantServiceCreateRequest
+ 2, // 20: metalstack.api.v2.TenantService.List:input_type -> metalstack.api.v2.TenantServiceListRequest
+ 4, // 21: metalstack.api.v2.TenantService.Get:input_type -> metalstack.api.v2.TenantServiceGetRequest
+ 6, // 22: metalstack.api.v2.TenantService.Update:input_type -> metalstack.api.v2.TenantServiceUpdateRequest
+ 7, // 23: metalstack.api.v2.TenantService.Delete:input_type -> metalstack.api.v2.TenantServiceDeleteRequest
+ 13, // 24: metalstack.api.v2.TenantService.Invite:input_type -> metalstack.api.v2.TenantServiceInviteRequest
+ 19, // 25: metalstack.api.v2.TenantService.InviteAccept:input_type -> metalstack.api.v2.TenantServiceInviteAcceptRequest
+ 21, // 26: metalstack.api.v2.TenantService.InviteDelete:input_type -> metalstack.api.v2.TenantServiceInviteDeleteRequest
+ 15, // 27: metalstack.api.v2.TenantService.InvitesList:input_type -> metalstack.api.v2.TenantServiceInvitesListRequest
+ 17, // 28: metalstack.api.v2.TenantService.InviteGet:input_type -> metalstack.api.v2.TenantServiceInviteGetRequest
+ 10, // 29: metalstack.api.v2.TenantService.Create:output_type -> metalstack.api.v2.TenantServiceCreateResponse
+ 9, // 30: metalstack.api.v2.TenantService.List:output_type -> metalstack.api.v2.TenantServiceListResponse
+ 8, // 31: metalstack.api.v2.TenantService.Get:output_type -> metalstack.api.v2.TenantServiceGetResponse
+ 11, // 32: metalstack.api.v2.TenantService.Update:output_type -> metalstack.api.v2.TenantServiceUpdateResponse
+ 12, // 33: metalstack.api.v2.TenantService.Delete:output_type -> metalstack.api.v2.TenantServiceDeleteResponse
+ 14, // 34: metalstack.api.v2.TenantService.Invite:output_type -> metalstack.api.v2.TenantServiceInviteResponse
+ 20, // 35: metalstack.api.v2.TenantService.InviteAccept:output_type -> metalstack.api.v2.TenantServiceInviteAcceptResponse
+ 22, // 36: metalstack.api.v2.TenantService.InviteDelete:output_type -> metalstack.api.v2.TenantServiceInviteDeleteResponse
+ 16, // 37: metalstack.api.v2.TenantService.InvitesList:output_type -> metalstack.api.v2.TenantServiceInvitesListResponse
+ 18, // 38: metalstack.api.v2.TenantService.InviteGet:output_type -> metalstack.api.v2.TenantServiceInviteGetResponse
+ 29, // [29:39] is the sub-list for method output_type
+ 19, // [19:29] is the sub-list for method input_type
+ 19, // [19:19] is the sub-list for extension type_name
+ 19, // [19:19] is the sub-list for extension extendee
+ 0, // [0:19] is the sub-list for field type_name
}
func init() { file_metalstack_api_v2_tenant_proto_init() }
@@ -2109,16 +1555,16 @@ func file_metalstack_api_v2_tenant_proto_init() {
}
file_metalstack_api_v2_common_proto_init()
file_metalstack_api_v2_predefined_rules_proto_init()
- file_metalstack_api_v2_tenant_proto_msgTypes[4].OneofWrappers = []any{}
+ file_metalstack_api_v2_tenant_proto_msgTypes[3].OneofWrappers = []any{}
+ file_metalstack_api_v2_tenant_proto_msgTypes[5].OneofWrappers = []any{}
file_metalstack_api_v2_tenant_proto_msgTypes[6].OneofWrappers = []any{}
- file_metalstack_api_v2_tenant_proto_msgTypes[7].OneofWrappers = []any{}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: unsafe.Slice(unsafe.StringData(file_metalstack_api_v2_tenant_proto_rawDesc), len(file_metalstack_api_v2_tenant_proto_rawDesc)),
NumEnums: 0,
- NumMessages: 32,
+ NumMessages: 23,
NumExtensions: 0,
NumServices: 1,
},
diff --git a/go/metalstack/api/v2/tenant_member.pb.go b/go/metalstack/api/v2/tenant_member.pb.go
new file mode 100644
index 00000000..ac5f91a2
--- /dev/null
+++ b/go/metalstack/api/v2/tenant_member.pb.go
@@ -0,0 +1,960 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.36.12
+// protoc (unknown)
+// source: metalstack/api/v2/tenant_member.proto
+
+package apiv2
+
+import (
+ _ "buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ timestamppb "google.golang.org/protobuf/types/known/timestamppb"
+ reflect "reflect"
+ sync "sync"
+ unsafe "unsafe"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// TenantMember defines a user that participates in a tenant.
+type TenantMember struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Member is the user id of the member.
+ Member string `protobuf:"bytes,1,opt,name=member,proto3" json:"member,omitempty"`
+ // Role is the role of the member.
+ Role TenantRole `protobuf:"varint,2,opt,name=role,proto3,enum=metalstack.api.v2.TenantRole" json:"role,omitempty"`
+ // Projects in which a user is a direct member.
+ Projects []string `protobuf:"bytes,3,rep,name=projects,proto3" json:"projects,omitempty"`
+ // CreatedAt the date when the member was added to the tenant.
+ CreatedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
+ // Meta for this tenant member.
+ Meta *Meta `protobuf:"bytes,5,opt,name=meta,proto3" json:"meta,omitempty"`
+ // Tenant is the tenant that this member participates in.
+ Tenant string `protobuf:"bytes,6,opt,name=tenant,proto3" json:"tenant,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *TenantMember) Reset() {
+ *x = TenantMember{}
+ mi := &file_metalstack_api_v2_tenant_member_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *TenantMember) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TenantMember) ProtoMessage() {}
+
+func (x *TenantMember) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_api_v2_tenant_member_proto_msgTypes[0]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TenantMember.ProtoReflect.Descriptor instead.
+func (*TenantMember) Descriptor() ([]byte, []int) {
+ return file_metalstack_api_v2_tenant_member_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *TenantMember) GetMember() string {
+ if x != nil {
+ return x.Member
+ }
+ return ""
+}
+
+func (x *TenantMember) GetRole() TenantRole {
+ if x != nil {
+ return x.Role
+ }
+ return TenantRole_TENANT_ROLE_UNSPECIFIED
+}
+
+func (x *TenantMember) GetProjects() []string {
+ if x != nil {
+ return x.Projects
+ }
+ return nil
+}
+
+func (x *TenantMember) GetCreatedAt() *timestamppb.Timestamp {
+ if x != nil {
+ return x.CreatedAt
+ }
+ return nil
+}
+
+func (x *TenantMember) GetMeta() *Meta {
+ if x != nil {
+ return x.Meta
+ }
+ return nil
+}
+
+func (x *TenantMember) GetTenant() string {
+ if x != nil {
+ return x.Tenant
+ }
+ return ""
+}
+
+// TenantMemberServiceListRequest is the request payload of the tenant member list request.
+type TenantMemberServiceListRequest struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Login of the tenant.
+ Login string `protobuf:"bytes,1,opt,name=login,proto3" json:"login,omitempty"`
+ // Query for tenant members.
+ Query *TenantMemberQuery `protobuf:"bytes,2,opt,name=query,proto3" json:"query,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *TenantMemberServiceListRequest) Reset() {
+ *x = TenantMemberServiceListRequest{}
+ mi := &file_metalstack_api_v2_tenant_member_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *TenantMemberServiceListRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TenantMemberServiceListRequest) ProtoMessage() {}
+
+func (x *TenantMemberServiceListRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_api_v2_tenant_member_proto_msgTypes[1]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TenantMemberServiceListRequest.ProtoReflect.Descriptor instead.
+func (*TenantMemberServiceListRequest) Descriptor() ([]byte, []int) {
+ return file_metalstack_api_v2_tenant_member_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *TenantMemberServiceListRequest) GetLogin() string {
+ if x != nil {
+ return x.Login
+ }
+ return ""
+}
+
+func (x *TenantMemberServiceListRequest) GetQuery() *TenantMemberQuery {
+ if x != nil {
+ return x.Query
+ }
+ return nil
+}
+
+// TenantMemberQuery is used to search tenant members.
+type TenantMemberQuery struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Member is the user id of the member.
+ Member *string `protobuf:"bytes,1,opt,name=member,proto3,oneof" json:"member,omitempty"`
+ // Role is the role of the member.
+ Role *TenantRole `protobuf:"varint,2,opt,name=role,proto3,enum=metalstack.api.v2.TenantRole,oneof" json:"role,omitempty"`
+ // Projects in which a user is a direct member.
+ Projects []string `protobuf:"bytes,3,rep,name=projects,proto3" json:"projects,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *TenantMemberQuery) Reset() {
+ *x = TenantMemberQuery{}
+ mi := &file_metalstack_api_v2_tenant_member_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *TenantMemberQuery) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TenantMemberQuery) ProtoMessage() {}
+
+func (x *TenantMemberQuery) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_api_v2_tenant_member_proto_msgTypes[2]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TenantMemberQuery.ProtoReflect.Descriptor instead.
+func (*TenantMemberQuery) Descriptor() ([]byte, []int) {
+ return file_metalstack_api_v2_tenant_member_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *TenantMemberQuery) GetMember() string {
+ if x != nil && x.Member != nil {
+ return *x.Member
+ }
+ return ""
+}
+
+func (x *TenantMemberQuery) GetRole() TenantRole {
+ if x != nil && x.Role != nil {
+ return *x.Role
+ }
+ return TenantRole_TENANT_ROLE_UNSPECIFIED
+}
+
+func (x *TenantMemberQuery) GetProjects() []string {
+ if x != nil {
+ return x.Projects
+ }
+ return nil
+}
+
+// TenantMemberServiceGetRequest is the request payload of the tenant member get request.
+type TenantMemberServiceGetRequest struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Login of the tenant.
+ Login string `protobuf:"bytes,1,opt,name=login,proto3" json:"login,omitempty"`
+ // Member is the user id of the member.
+ Member string `protobuf:"bytes,2,opt,name=member,proto3" json:"member,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *TenantMemberServiceGetRequest) Reset() {
+ *x = TenantMemberServiceGetRequest{}
+ mi := &file_metalstack_api_v2_tenant_member_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *TenantMemberServiceGetRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TenantMemberServiceGetRequest) ProtoMessage() {}
+
+func (x *TenantMemberServiceGetRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_api_v2_tenant_member_proto_msgTypes[3]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TenantMemberServiceGetRequest.ProtoReflect.Descriptor instead.
+func (*TenantMemberServiceGetRequest) Descriptor() ([]byte, []int) {
+ return file_metalstack_api_v2_tenant_member_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *TenantMemberServiceGetRequest) GetLogin() string {
+ if x != nil {
+ return x.Login
+ }
+ return ""
+}
+
+func (x *TenantMemberServiceGetRequest) GetMember() string {
+ if x != nil {
+ return x.Member
+ }
+ return ""
+}
+
+// TenantMemberServiceDeleteRequest is used to remove a member from a tenant.
+type TenantMemberServiceDeleteRequest struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Login of the tenant.
+ Login string `protobuf:"bytes,1,opt,name=login,proto3" json:"login,omitempty"`
+ // Member is the id of the member to remove from this tenant.
+ Member string `protobuf:"bytes,2,opt,name=member,proto3" json:"member,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *TenantMemberServiceDeleteRequest) Reset() {
+ *x = TenantMemberServiceDeleteRequest{}
+ mi := &file_metalstack_api_v2_tenant_member_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *TenantMemberServiceDeleteRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TenantMemberServiceDeleteRequest) ProtoMessage() {}
+
+func (x *TenantMemberServiceDeleteRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_api_v2_tenant_member_proto_msgTypes[4]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TenantMemberServiceDeleteRequest.ProtoReflect.Descriptor instead.
+func (*TenantMemberServiceDeleteRequest) Descriptor() ([]byte, []int) {
+ return file_metalstack_api_v2_tenant_member_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *TenantMemberServiceDeleteRequest) GetLogin() string {
+ if x != nil {
+ return x.Login
+ }
+ return ""
+}
+
+func (x *TenantMemberServiceDeleteRequest) GetMember() string {
+ if x != nil {
+ return x.Member
+ }
+ return ""
+}
+
+// TenantMemberServiceCreateRequest is the request payload for adding a member to a tenant.
+type TenantMemberServiceCreateRequest struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Login of the tenant to which the member will be added.
+ Login string `protobuf:"bytes,1,opt,name=login,proto3" json:"login,omitempty"`
+ // Login of the member to add.
+ Member string `protobuf:"bytes,2,opt,name=member,proto3" json:"member,omitempty"`
+ // Role to assign to the new member.
+ Role TenantRole `protobuf:"varint,3,opt,name=role,proto3,enum=metalstack.api.v2.TenantRole" json:"role,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *TenantMemberServiceCreateRequest) Reset() {
+ *x = TenantMemberServiceCreateRequest{}
+ mi := &file_metalstack_api_v2_tenant_member_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *TenantMemberServiceCreateRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TenantMemberServiceCreateRequest) ProtoMessage() {}
+
+func (x *TenantMemberServiceCreateRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_api_v2_tenant_member_proto_msgTypes[5]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TenantMemberServiceCreateRequest.ProtoReflect.Descriptor instead.
+func (*TenantMemberServiceCreateRequest) Descriptor() ([]byte, []int) {
+ return file_metalstack_api_v2_tenant_member_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *TenantMemberServiceCreateRequest) GetLogin() string {
+ if x != nil {
+ return x.Login
+ }
+ return ""
+}
+
+func (x *TenantMemberServiceCreateRequest) GetMember() string {
+ if x != nil {
+ return x.Member
+ }
+ return ""
+}
+
+func (x *TenantMemberServiceCreateRequest) GetRole() TenantRole {
+ if x != nil {
+ return x.Role
+ }
+ return TenantRole_TENANT_ROLE_UNSPECIFIED
+}
+
+// TenantMemberServiceUpdateRequest is used to update a member from a tenant.
+type TenantMemberServiceUpdateRequest struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Login of the tenant.
+ Login string `protobuf:"bytes,1,opt,name=login,proto3" json:"login,omitempty"`
+ // Member is the id of the member to update in this tenant.
+ Member string `protobuf:"bytes,2,opt,name=member,proto3" json:"member,omitempty"`
+ // Role of this user in this tenant.
+ Role *TenantRole `protobuf:"varint,3,opt,name=role,proto3,enum=metalstack.api.v2.TenantRole,oneof" json:"role,omitempty"`
+ // UpdateMeta contains the timestamp and strategy to be used in this update request.
+ UpdateMeta *UpdateMeta `protobuf:"bytes,4,opt,name=update_meta,json=updateMeta,proto3" json:"update_meta,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *TenantMemberServiceUpdateRequest) Reset() {
+ *x = TenantMemberServiceUpdateRequest{}
+ mi := &file_metalstack_api_v2_tenant_member_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *TenantMemberServiceUpdateRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TenantMemberServiceUpdateRequest) ProtoMessage() {}
+
+func (x *TenantMemberServiceUpdateRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_api_v2_tenant_member_proto_msgTypes[6]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TenantMemberServiceUpdateRequest.ProtoReflect.Descriptor instead.
+func (*TenantMemberServiceUpdateRequest) Descriptor() ([]byte, []int) {
+ return file_metalstack_api_v2_tenant_member_proto_rawDescGZIP(), []int{6}
+}
+
+func (x *TenantMemberServiceUpdateRequest) GetLogin() string {
+ if x != nil {
+ return x.Login
+ }
+ return ""
+}
+
+func (x *TenantMemberServiceUpdateRequest) GetMember() string {
+ if x != nil {
+ return x.Member
+ }
+ return ""
+}
+
+func (x *TenantMemberServiceUpdateRequest) GetRole() TenantRole {
+ if x != nil && x.Role != nil {
+ return *x.Role
+ }
+ return TenantRole_TENANT_ROLE_UNSPECIFIED
+}
+
+func (x *TenantMemberServiceUpdateRequest) GetUpdateMeta() *UpdateMeta {
+ if x != nil {
+ return x.UpdateMeta
+ }
+ return nil
+}
+
+// TenantMemberServiceGetResponse is the response payload of the tenant member get request.
+type TenantMemberServiceGetResponse struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Member is the member of this tenant.
+ Member *TenantMember `protobuf:"bytes,1,opt,name=member,proto3" json:"member,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *TenantMemberServiceGetResponse) Reset() {
+ *x = TenantMemberServiceGetResponse{}
+ mi := &file_metalstack_api_v2_tenant_member_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *TenantMemberServiceGetResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TenantMemberServiceGetResponse) ProtoMessage() {}
+
+func (x *TenantMemberServiceGetResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_api_v2_tenant_member_proto_msgTypes[7]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TenantMemberServiceGetResponse.ProtoReflect.Descriptor instead.
+func (*TenantMemberServiceGetResponse) Descriptor() ([]byte, []int) {
+ return file_metalstack_api_v2_tenant_member_proto_rawDescGZIP(), []int{7}
+}
+
+func (x *TenantMemberServiceGetResponse) GetMember() *TenantMember {
+ if x != nil {
+ return x.Member
+ }
+ return nil
+}
+
+// TenantMemberServiceListResponse is the response payload of the tenant member list request.
+type TenantMemberServiceListResponse struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Members is the list of tenant members.
+ Members []*TenantMember `protobuf:"bytes,1,rep,name=members,proto3" json:"members,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *TenantMemberServiceListResponse) Reset() {
+ *x = TenantMemberServiceListResponse{}
+ mi := &file_metalstack_api_v2_tenant_member_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *TenantMemberServiceListResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TenantMemberServiceListResponse) ProtoMessage() {}
+
+func (x *TenantMemberServiceListResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_api_v2_tenant_member_proto_msgTypes[8]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TenantMemberServiceListResponse.ProtoReflect.Descriptor instead.
+func (*TenantMemberServiceListResponse) Descriptor() ([]byte, []int) {
+ return file_metalstack_api_v2_tenant_member_proto_rawDescGZIP(), []int{8}
+}
+
+func (x *TenantMemberServiceListResponse) GetMembers() []*TenantMember {
+ if x != nil {
+ return x.Members
+ }
+ return nil
+}
+
+// TenantMemberServiceCreateResponse is the response payload of the tenant member create request.
+type TenantMemberServiceCreateResponse struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Member is the member of this tenant.
+ Member *TenantMember `protobuf:"bytes,1,opt,name=member,proto3" json:"member,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *TenantMemberServiceCreateResponse) Reset() {
+ *x = TenantMemberServiceCreateResponse{}
+ mi := &file_metalstack_api_v2_tenant_member_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *TenantMemberServiceCreateResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TenantMemberServiceCreateResponse) ProtoMessage() {}
+
+func (x *TenantMemberServiceCreateResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_api_v2_tenant_member_proto_msgTypes[9]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TenantMemberServiceCreateResponse.ProtoReflect.Descriptor instead.
+func (*TenantMemberServiceCreateResponse) Descriptor() ([]byte, []int) {
+ return file_metalstack_api_v2_tenant_member_proto_rawDescGZIP(), []int{9}
+}
+
+func (x *TenantMemberServiceCreateResponse) GetMember() *TenantMember {
+ if x != nil {
+ return x.Member
+ }
+ return nil
+}
+
+// TenantMemberServiceUpdateResponse is the response payload of the tenant member update request.
+type TenantMemberServiceUpdateResponse struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Member is the member of this tenant.
+ Member *TenantMember `protobuf:"bytes,1,opt,name=member,proto3" json:"member,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *TenantMemberServiceUpdateResponse) Reset() {
+ *x = TenantMemberServiceUpdateResponse{}
+ mi := &file_metalstack_api_v2_tenant_member_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *TenantMemberServiceUpdateResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TenantMemberServiceUpdateResponse) ProtoMessage() {}
+
+func (x *TenantMemberServiceUpdateResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_api_v2_tenant_member_proto_msgTypes[10]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TenantMemberServiceUpdateResponse.ProtoReflect.Descriptor instead.
+func (*TenantMemberServiceUpdateResponse) Descriptor() ([]byte, []int) {
+ return file_metalstack_api_v2_tenant_member_proto_rawDescGZIP(), []int{10}
+}
+
+func (x *TenantMemberServiceUpdateResponse) GetMember() *TenantMember {
+ if x != nil {
+ return x.Member
+ }
+ return nil
+}
+
+// TenantMemberServiceDeleteResponse is the response payload of the tenant member delete request.
+type TenantMemberServiceDeleteResponse struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Member is the member of this tenant.
+ Member *TenantMember `protobuf:"bytes,1,opt,name=member,proto3" json:"member,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *TenantMemberServiceDeleteResponse) Reset() {
+ *x = TenantMemberServiceDeleteResponse{}
+ mi := &file_metalstack_api_v2_tenant_member_proto_msgTypes[11]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *TenantMemberServiceDeleteResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TenantMemberServiceDeleteResponse) ProtoMessage() {}
+
+func (x *TenantMemberServiceDeleteResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_api_v2_tenant_member_proto_msgTypes[11]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TenantMemberServiceDeleteResponse.ProtoReflect.Descriptor instead.
+func (*TenantMemberServiceDeleteResponse) Descriptor() ([]byte, []int) {
+ return file_metalstack_api_v2_tenant_member_proto_rawDescGZIP(), []int{11}
+}
+
+func (x *TenantMemberServiceDeleteResponse) GetMember() *TenantMember {
+ if x != nil {
+ return x.Member
+ }
+ return nil
+}
+
+// TenantMemberServiceLeaveRequest is used to leave a tenant. This way a member is not required to ask a tenant owner to remove him.
+type TenantMemberServiceLeaveRequest struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Login of the tenant that the user wants to leave.
+ Login string `protobuf:"bytes,1,opt,name=login,proto3" json:"login,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *TenantMemberServiceLeaveRequest) Reset() {
+ *x = TenantMemberServiceLeaveRequest{}
+ mi := &file_metalstack_api_v2_tenant_member_proto_msgTypes[12]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *TenantMemberServiceLeaveRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TenantMemberServiceLeaveRequest) ProtoMessage() {}
+
+func (x *TenantMemberServiceLeaveRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_api_v2_tenant_member_proto_msgTypes[12]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TenantMemberServiceLeaveRequest.ProtoReflect.Descriptor instead.
+func (*TenantMemberServiceLeaveRequest) Descriptor() ([]byte, []int) {
+ return file_metalstack_api_v2_tenant_member_proto_rawDescGZIP(), []int{12}
+}
+
+func (x *TenantMemberServiceLeaveRequest) GetLogin() string {
+ if x != nil {
+ return x.Login
+ }
+ return ""
+}
+
+// TenantMemberServiceLeaveResponse is the response payload to a leave tenant request.
+type TenantMemberServiceLeaveResponse struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // Member is the member of this tenant.
+ Member *TenantMember `protobuf:"bytes,1,opt,name=member,proto3" json:"member,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *TenantMemberServiceLeaveResponse) Reset() {
+ *x = TenantMemberServiceLeaveResponse{}
+ mi := &file_metalstack_api_v2_tenant_member_proto_msgTypes[13]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *TenantMemberServiceLeaveResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TenantMemberServiceLeaveResponse) ProtoMessage() {}
+
+func (x *TenantMemberServiceLeaveResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_metalstack_api_v2_tenant_member_proto_msgTypes[13]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TenantMemberServiceLeaveResponse.ProtoReflect.Descriptor instead.
+func (*TenantMemberServiceLeaveResponse) Descriptor() ([]byte, []int) {
+ return file_metalstack_api_v2_tenant_member_proto_rawDescGZIP(), []int{13}
+}
+
+func (x *TenantMemberServiceLeaveResponse) GetMember() *TenantMember {
+ if x != nil {
+ return x.Member
+ }
+ return nil
+}
+
+var File_metalstack_api_v2_tenant_member_proto protoreflect.FileDescriptor
+
+const file_metalstack_api_v2_tenant_member_proto_rawDesc = "" +
+ "\n" +
+ "%metalstack/api/v2/tenant_member.proto\x12\x11metalstack.api.v2\x1a\x1bbuf/validate/validate.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1emetalstack/api/v2/common.proto\x1a(metalstack/api/v2/predefined_rules.proto\"\x99\x02\n" +
+ "\fTenantMember\x12#\n" +
+ "\x06member\x18\x01 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01R\x06member\x12;\n" +
+ "\x04role\x18\x02 \x01(\x0e2\x1d.metalstack.api.v2.TenantRoleB\b\xbaH\x05\x82\x01\x02\x10\x01R\x04role\x12\x1a\n" +
+ "\bprojects\x18\x03 \x03(\tR\bprojects\x129\n" +
+ "\n" +
+ "created_at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x12+\n" +
+ "\x04meta\x18\x05 \x01(\v2\x17.metalstack.api.v2.MetaR\x04meta\x12#\n" +
+ "\x06tenant\x18\x06 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01R\x06tenant\"\x7f\n" +
+ "\x1eTenantMemberServiceListRequest\x12!\n" +
+ "\x05login\x18\x01 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01R\x05login\x12:\n" +
+ "\x05query\x18\x02 \x01(\v2$.metalstack.api.v2.TenantMemberQueryR\x05query\"\xaf\x01\n" +
+ "\x11TenantMemberQuery\x12(\n" +
+ "\x06member\x18\x01 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01H\x00R\x06member\x88\x01\x01\x12@\n" +
+ "\x04role\x18\x02 \x01(\x0e2\x1d.metalstack.api.v2.TenantRoleB\b\xbaH\x05\x82\x01\x02\x10\x01H\x01R\x04role\x88\x01\x01\x12\x1a\n" +
+ "\bprojects\x18\x03 \x03(\tR\bprojectsB\t\n" +
+ "\a_memberB\a\n" +
+ "\x05_role\"g\n" +
+ "\x1dTenantMemberServiceGetRequest\x12!\n" +
+ "\x05login\x18\x01 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01R\x05login\x12#\n" +
+ "\x06member\x18\x02 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01R\x06member\"]\n" +
+ " TenantMemberServiceDeleteRequest\x12!\n" +
+ "\x05login\x18\x01 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01R\x05login\x12\x16\n" +
+ "\x06member\x18\x02 \x01(\tR\x06member\"\xa7\x01\n" +
+ " TenantMemberServiceCreateRequest\x12!\n" +
+ "\x05login\x18\x01 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01R\x05login\x12#\n" +
+ "\x06member\x18\x02 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01R\x06member\x12;\n" +
+ "\x04role\x18\x03 \x01(\x0e2\x1d.metalstack.api.v2.TenantRoleB\b\xbaH\x05\x82\x01\x02\x10\x01R\x04role\"\xfd\x01\n" +
+ " TenantMemberServiceUpdateRequest\x12!\n" +
+ "\x05login\x18\x01 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01R\x05login\x12#\n" +
+ "\x06member\x18\x02 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01R\x06member\x12@\n" +
+ "\x04role\x18\x03 \x01(\x0e2\x1d.metalstack.api.v2.TenantRoleB\b\xbaH\x05\x82\x01\x02\x10\x01H\x00R\x04role\x88\x01\x01\x12F\n" +
+ "\vupdate_meta\x18\x04 \x01(\v2\x1d.metalstack.api.v2.UpdateMetaB\x06\xbaH\x03\xc8\x01\x01R\n" +
+ "updateMetaB\a\n" +
+ "\x05_role\"Y\n" +
+ "\x1eTenantMemberServiceGetResponse\x127\n" +
+ "\x06member\x18\x01 \x01(\v2\x1f.metalstack.api.v2.TenantMemberR\x06member\"\\\n" +
+ "\x1fTenantMemberServiceListResponse\x129\n" +
+ "\amembers\x18\x01 \x03(\v2\x1f.metalstack.api.v2.TenantMemberR\amembers\"\\\n" +
+ "!TenantMemberServiceCreateResponse\x127\n" +
+ "\x06member\x18\x01 \x01(\v2\x1f.metalstack.api.v2.TenantMemberR\x06member\"\\\n" +
+ "!TenantMemberServiceUpdateResponse\x127\n" +
+ "\x06member\x18\x01 \x01(\v2\x1f.metalstack.api.v2.TenantMemberR\x06member\"\\\n" +
+ "!TenantMemberServiceDeleteResponse\x127\n" +
+ "\x06member\x18\x01 \x01(\v2\x1f.metalstack.api.v2.TenantMemberR\x06member\"D\n" +
+ "\x1fTenantMemberServiceLeaveRequest\x12!\n" +
+ "\x05login\x18\x01 \x01(\tB\v\xbaH\br\x06\x90\xb4\xae\xb1\x02\x01R\x05login\"[\n" +
+ " TenantMemberServiceLeaveResponse\x127\n" +
+ "\x06member\x18\x01 \x01(\v2\x1f.metalstack.api.v2.TenantMemberR\x06member2\x88\x06\n" +
+ "\x13TenantMemberService\x12~\n" +
+ "\x06Create\x123.metalstack.api.v2.TenantMemberServiceCreateRequest\x1a4.metalstack.api.v2.TenantMemberServiceCreateResponse\"\t\xc2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12{\n" +
+ "\x04List\x121.metalstack.api.v2.TenantMemberServiceListRequest\x1a2.metalstack.api.v2.TenantMemberServiceListResponse\"\f\xc2\xf3\x18\x04\x01\x02\x03\x04\xe0\xf3\x18\x02\x12x\n" +
+ "\x03Get\x120.metalstack.api.v2.TenantMemberServiceGetRequest\x1a1.metalstack.api.v2.TenantMemberServiceGetResponse\"\f\xc2\xf3\x18\x04\x01\x02\x03\x04\xe0\xf3\x18\x02\x12~\n" +
+ "\x06Update\x123.metalstack.api.v2.TenantMemberServiceUpdateRequest\x1a4.metalstack.api.v2.TenantMemberServiceUpdateResponse\"\t\xc2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12~\n" +
+ "\x06Delete\x123.metalstack.api.v2.TenantMemberServiceDeleteRequest\x1a4.metalstack.api.v2.TenantMemberServiceDeleteResponse\"\t\xc2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12z\n" +
+ "\x05Leave\x122.metalstack.api.v2.TenantMemberServiceLeaveRequest\x1a3.metalstack.api.v2.TenantMemberServiceLeaveResponse\"\b\xd8\xf3\x18\x02\xe0\xf3\x18\x01B\xc7\x01\n" +
+ "\x15com.metalstack.api.v2B\x11TenantMemberProtoP\x01Z5github.com/metal-stack/api/go/metalstack/api/v2;apiv2\xa2\x02\x03MAX\xaa\x02\x11Metalstack.Api.V2\xca\x02\x11Metalstack\\Api\\V2\xe2\x02\x1dMetalstack\\Api\\V2\\GPBMetadata\xea\x02\x13Metalstack::Api::V2b\x06proto3"
+
+var (
+ file_metalstack_api_v2_tenant_member_proto_rawDescOnce sync.Once
+ file_metalstack_api_v2_tenant_member_proto_rawDescData []byte
+)
+
+func file_metalstack_api_v2_tenant_member_proto_rawDescGZIP() []byte {
+ file_metalstack_api_v2_tenant_member_proto_rawDescOnce.Do(func() {
+ file_metalstack_api_v2_tenant_member_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_metalstack_api_v2_tenant_member_proto_rawDesc), len(file_metalstack_api_v2_tenant_member_proto_rawDesc)))
+ })
+ return file_metalstack_api_v2_tenant_member_proto_rawDescData
+}
+
+var file_metalstack_api_v2_tenant_member_proto_msgTypes = make([]protoimpl.MessageInfo, 14)
+var file_metalstack_api_v2_tenant_member_proto_goTypes = []any{
+ (*TenantMember)(nil), // 0: metalstack.api.v2.TenantMember
+ (*TenantMemberServiceListRequest)(nil), // 1: metalstack.api.v2.TenantMemberServiceListRequest
+ (*TenantMemberQuery)(nil), // 2: metalstack.api.v2.TenantMemberQuery
+ (*TenantMemberServiceGetRequest)(nil), // 3: metalstack.api.v2.TenantMemberServiceGetRequest
+ (*TenantMemberServiceDeleteRequest)(nil), // 4: metalstack.api.v2.TenantMemberServiceDeleteRequest
+ (*TenantMemberServiceCreateRequest)(nil), // 5: metalstack.api.v2.TenantMemberServiceCreateRequest
+ (*TenantMemberServiceUpdateRequest)(nil), // 6: metalstack.api.v2.TenantMemberServiceUpdateRequest
+ (*TenantMemberServiceGetResponse)(nil), // 7: metalstack.api.v2.TenantMemberServiceGetResponse
+ (*TenantMemberServiceListResponse)(nil), // 8: metalstack.api.v2.TenantMemberServiceListResponse
+ (*TenantMemberServiceCreateResponse)(nil), // 9: metalstack.api.v2.TenantMemberServiceCreateResponse
+ (*TenantMemberServiceUpdateResponse)(nil), // 10: metalstack.api.v2.TenantMemberServiceUpdateResponse
+ (*TenantMemberServiceDeleteResponse)(nil), // 11: metalstack.api.v2.TenantMemberServiceDeleteResponse
+ (*TenantMemberServiceLeaveRequest)(nil), // 12: metalstack.api.v2.TenantMemberServiceLeaveRequest
+ (*TenantMemberServiceLeaveResponse)(nil), // 13: metalstack.api.v2.TenantMemberServiceLeaveResponse
+ (TenantRole)(0), // 14: metalstack.api.v2.TenantRole
+ (*timestamppb.Timestamp)(nil), // 15: google.protobuf.Timestamp
+ (*Meta)(nil), // 16: metalstack.api.v2.Meta
+ (*UpdateMeta)(nil), // 17: metalstack.api.v2.UpdateMeta
+}
+var file_metalstack_api_v2_tenant_member_proto_depIdxs = []int32{
+ 14, // 0: metalstack.api.v2.TenantMember.role:type_name -> metalstack.api.v2.TenantRole
+ 15, // 1: metalstack.api.v2.TenantMember.created_at:type_name -> google.protobuf.Timestamp
+ 16, // 2: metalstack.api.v2.TenantMember.meta:type_name -> metalstack.api.v2.Meta
+ 2, // 3: metalstack.api.v2.TenantMemberServiceListRequest.query:type_name -> metalstack.api.v2.TenantMemberQuery
+ 14, // 4: metalstack.api.v2.TenantMemberQuery.role:type_name -> metalstack.api.v2.TenantRole
+ 14, // 5: metalstack.api.v2.TenantMemberServiceCreateRequest.role:type_name -> metalstack.api.v2.TenantRole
+ 14, // 6: metalstack.api.v2.TenantMemberServiceUpdateRequest.role:type_name -> metalstack.api.v2.TenantRole
+ 17, // 7: metalstack.api.v2.TenantMemberServiceUpdateRequest.update_meta:type_name -> metalstack.api.v2.UpdateMeta
+ 0, // 8: metalstack.api.v2.TenantMemberServiceGetResponse.member:type_name -> metalstack.api.v2.TenantMember
+ 0, // 9: metalstack.api.v2.TenantMemberServiceListResponse.members:type_name -> metalstack.api.v2.TenantMember
+ 0, // 10: metalstack.api.v2.TenantMemberServiceCreateResponse.member:type_name -> metalstack.api.v2.TenantMember
+ 0, // 11: metalstack.api.v2.TenantMemberServiceUpdateResponse.member:type_name -> metalstack.api.v2.TenantMember
+ 0, // 12: metalstack.api.v2.TenantMemberServiceDeleteResponse.member:type_name -> metalstack.api.v2.TenantMember
+ 0, // 13: metalstack.api.v2.TenantMemberServiceLeaveResponse.member:type_name -> metalstack.api.v2.TenantMember
+ 5, // 14: metalstack.api.v2.TenantMemberService.Create:input_type -> metalstack.api.v2.TenantMemberServiceCreateRequest
+ 1, // 15: metalstack.api.v2.TenantMemberService.List:input_type -> metalstack.api.v2.TenantMemberServiceListRequest
+ 3, // 16: metalstack.api.v2.TenantMemberService.Get:input_type -> metalstack.api.v2.TenantMemberServiceGetRequest
+ 6, // 17: metalstack.api.v2.TenantMemberService.Update:input_type -> metalstack.api.v2.TenantMemberServiceUpdateRequest
+ 4, // 18: metalstack.api.v2.TenantMemberService.Delete:input_type -> metalstack.api.v2.TenantMemberServiceDeleteRequest
+ 12, // 19: metalstack.api.v2.TenantMemberService.Leave:input_type -> metalstack.api.v2.TenantMemberServiceLeaveRequest
+ 9, // 20: metalstack.api.v2.TenantMemberService.Create:output_type -> metalstack.api.v2.TenantMemberServiceCreateResponse
+ 8, // 21: metalstack.api.v2.TenantMemberService.List:output_type -> metalstack.api.v2.TenantMemberServiceListResponse
+ 7, // 22: metalstack.api.v2.TenantMemberService.Get:output_type -> metalstack.api.v2.TenantMemberServiceGetResponse
+ 10, // 23: metalstack.api.v2.TenantMemberService.Update:output_type -> metalstack.api.v2.TenantMemberServiceUpdateResponse
+ 11, // 24: metalstack.api.v2.TenantMemberService.Delete:output_type -> metalstack.api.v2.TenantMemberServiceDeleteResponse
+ 13, // 25: metalstack.api.v2.TenantMemberService.Leave:output_type -> metalstack.api.v2.TenantMemberServiceLeaveResponse
+ 20, // [20:26] is the sub-list for method output_type
+ 14, // [14:20] is the sub-list for method input_type
+ 14, // [14:14] is the sub-list for extension type_name
+ 14, // [14:14] is the sub-list for extension extendee
+ 0, // [0:14] is the sub-list for field type_name
+}
+
+func init() { file_metalstack_api_v2_tenant_member_proto_init() }
+func file_metalstack_api_v2_tenant_member_proto_init() {
+ if File_metalstack_api_v2_tenant_member_proto != nil {
+ return
+ }
+ file_metalstack_api_v2_common_proto_init()
+ file_metalstack_api_v2_predefined_rules_proto_init()
+ file_metalstack_api_v2_tenant_member_proto_msgTypes[2].OneofWrappers = []any{}
+ file_metalstack_api_v2_tenant_member_proto_msgTypes[6].OneofWrappers = []any{}
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: unsafe.Slice(unsafe.StringData(file_metalstack_api_v2_tenant_member_proto_rawDesc), len(file_metalstack_api_v2_tenant_member_proto_rawDesc)),
+ NumEnums: 0,
+ NumMessages: 14,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_metalstack_api_v2_tenant_member_proto_goTypes,
+ DependencyIndexes: file_metalstack_api_v2_tenant_member_proto_depIdxs,
+ MessageInfos: file_metalstack_api_v2_tenant_member_proto_msgTypes,
+ }.Build()
+ File_metalstack_api_v2_tenant_member_proto = out.File
+ file_metalstack_api_v2_tenant_member_proto_goTypes = nil
+ file_metalstack_api_v2_tenant_member_proto_depIdxs = nil
+}
diff --git a/go/permissions/servicepermissions.go b/go/permissions/servicepermissions.go
index f6eaedd9..4efcc657 100755
--- a/go/permissions/servicepermissions.go
+++ b/go/permissions/servicepermissions.go
@@ -34,10 +34,12 @@ func GetServices() []string {
"metalstack.api.v2.MethodService",
"metalstack.api.v2.NetworkService",
"metalstack.api.v2.PartitionService",
+ "metalstack.api.v2.ProjectMemberService",
"metalstack.api.v2.ProjectService",
"metalstack.api.v2.SizeImageConstraintService",
"metalstack.api.v2.SizeReservationService",
"metalstack.api.v2.SizeService",
+ "metalstack.api.v2.TenantMemberService",
"metalstack.api.v2.TenantService",
"metalstack.api.v2.TokenService",
"metalstack.api.v2.UserService",
@@ -90,7 +92,10 @@ func GetServicePermissions() *ServicePermissions {
"/metalstack.admin.v2.PartitionService/Create": {},
"/metalstack.admin.v2.PartitionService/Delete": {},
"/metalstack.admin.v2.PartitionService/Update": {},
+ "/metalstack.admin.v2.ProjectService/AddMember": {},
+ "/metalstack.admin.v2.ProjectService/Create": {},
"/metalstack.admin.v2.ProjectService/List": {},
+ "/metalstack.admin.v2.ProjectService/RemoveMember": {},
"/metalstack.admin.v2.SizeImageConstraintService/Create": {},
"/metalstack.admin.v2.SizeImageConstraintService/Delete": {},
"/metalstack.admin.v2.SizeImageConstraintService/Get": {},
@@ -188,29 +193,35 @@ func GetServicePermissions() *ServicePermissions {
"/metalstack.api.v2.AuditService/Get": {},
"/metalstack.api.v2.AuditService/List": {},
"/metalstack.api.v2.ProjectService/Create": {},
- "/metalstack.api.v2.TenantService/AddMember": {},
+ "/metalstack.api.v2.TenantMemberService/Create": {},
+ "/metalstack.api.v2.TenantMemberService/Delete": {},
+ "/metalstack.api.v2.TenantMemberService/Get": {},
+ "/metalstack.api.v2.TenantMemberService/List": {},
+ "/metalstack.api.v2.TenantMemberService/Update": {},
"/metalstack.api.v2.TenantService/Delete": {},
"/metalstack.api.v2.TenantService/Get": {},
"/metalstack.api.v2.TenantService/Invite": {},
"/metalstack.api.v2.TenantService/InviteDelete": {},
"/metalstack.api.v2.TenantService/InvitesList": {},
- "/metalstack.api.v2.TenantService/RemoveMember": {},
"/metalstack.api.v2.TenantService/Update": {},
- "/metalstack.api.v2.TenantService/UpdateMember": {},
},
apiv2.TenantRole_TENANT_ROLE_EDITOR: map[string]struct{}{
- "/metalstack.api.v2.ProjectService/Create": {},
- "/metalstack.api.v2.TenantService/AddMember": {},
- "/metalstack.api.v2.TenantService/Delete": {},
- "/metalstack.api.v2.TenantService/Get": {},
- "/metalstack.api.v2.TenantService/Update": {},
+ "/metalstack.api.v2.ProjectService/Create": {},
+ "/metalstack.api.v2.TenantMemberService/Get": {},
+ "/metalstack.api.v2.TenantMemberService/List": {},
+ "/metalstack.api.v2.TenantService/Delete": {},
+ "/metalstack.api.v2.TenantService/Get": {},
+ "/metalstack.api.v2.TenantService/Update": {},
},
apiv2.TenantRole_TENANT_ROLE_VIEWER: map[string]struct{}{
- "/metalstack.api.v2.TenantService/Get": {},
- "/metalstack.api.v2.TenantService/Leave": {},
+ "/metalstack.api.v2.TenantMemberService/Get": {},
+ "/metalstack.api.v2.TenantMemberService/List": {},
+ "/metalstack.api.v2.TenantService/Get": {},
},
apiv2.TenantRole_TENANT_ROLE_GUEST: map[string]struct{}{
- "/metalstack.api.v2.TenantService/Get": {},
+ "/metalstack.api.v2.TenantMemberService/Get": {},
+ "/metalstack.api.v2.TenantMemberService/List": {},
+ "/metalstack.api.v2.TenantService/Get": {},
},
},
Project: Project{
@@ -233,15 +244,17 @@ func GetServicePermissions() *ServicePermissions {
"/metalstack.api.v2.NetworkService/List": {},
"/metalstack.api.v2.NetworkService/ListBaseNetworks": {},
"/metalstack.api.v2.NetworkService/Update": {},
- "/metalstack.api.v2.ProjectService/AddMember": {},
+ "/metalstack.api.v2.ProjectMemberService/Create": {},
+ "/metalstack.api.v2.ProjectMemberService/Delete": {},
+ "/metalstack.api.v2.ProjectMemberService/Get": {},
+ "/metalstack.api.v2.ProjectMemberService/List": {},
+ "/metalstack.api.v2.ProjectMemberService/Update": {},
"/metalstack.api.v2.ProjectService/Delete": {},
"/metalstack.api.v2.ProjectService/Get": {},
"/metalstack.api.v2.ProjectService/Invite": {},
"/metalstack.api.v2.ProjectService/InviteDelete": {},
"/metalstack.api.v2.ProjectService/InvitesList": {},
- "/metalstack.api.v2.ProjectService/RemoveMember": {},
"/metalstack.api.v2.ProjectService/Update": {},
- "/metalstack.api.v2.ProjectService/UpdateMember": {},
"/metalstack.api.v2.SizeReservationService/Get": {},
"/metalstack.api.v2.SizeReservationService/List": {},
},
@@ -264,6 +277,8 @@ func GetServicePermissions() *ServicePermissions {
"/metalstack.api.v2.NetworkService/List": {},
"/metalstack.api.v2.NetworkService/ListBaseNetworks": {},
"/metalstack.api.v2.NetworkService/Update": {},
+ "/metalstack.api.v2.ProjectMemberService/Get": {},
+ "/metalstack.api.v2.ProjectMemberService/List": {},
"/metalstack.api.v2.ProjectService/Get": {},
"/metalstack.api.v2.ProjectService/Update": {},
"/metalstack.api.v2.SizeReservationService/Get": {},
@@ -277,8 +292,9 @@ func GetServicePermissions() *ServicePermissions {
"/metalstack.api.v2.NetworkService/Get": {},
"/metalstack.api.v2.NetworkService/List": {},
"/metalstack.api.v2.NetworkService/ListBaseNetworks": {},
+ "/metalstack.api.v2.ProjectMemberService/Get": {},
+ "/metalstack.api.v2.ProjectMemberService/List": {},
"/metalstack.api.v2.ProjectService/Get": {},
- "/metalstack.api.v2.ProjectService/Leave": {},
"/metalstack.api.v2.SizeReservationService/Get": {},
"/metalstack.api.v2.SizeReservationService/List": {},
},
@@ -322,7 +338,10 @@ func GetServicePermissions() *ServicePermissions {
"/metalstack.admin.v2.PartitionService/Create": {},
"/metalstack.admin.v2.PartitionService/Delete": {},
"/metalstack.admin.v2.PartitionService/Update": {},
+ "/metalstack.admin.v2.ProjectService/AddMember": {},
+ "/metalstack.admin.v2.ProjectService/Create": {},
"/metalstack.admin.v2.ProjectService/List": {},
+ "/metalstack.admin.v2.ProjectService/RemoveMember": {},
"/metalstack.admin.v2.SizeImageConstraintService/Create": {},
"/metalstack.admin.v2.SizeImageConstraintService/Delete": {},
"/metalstack.admin.v2.SizeImageConstraintService/Get": {},
@@ -385,7 +404,12 @@ func GetServicePermissions() *ServicePermissions {
"/metalstack.api.v2.NetworkService/Update": {},
"/metalstack.api.v2.PartitionService/Get": {},
"/metalstack.api.v2.PartitionService/List": {},
- "/metalstack.api.v2.ProjectService/AddMember": {},
+ "/metalstack.api.v2.ProjectMemberService/Create": {},
+ "/metalstack.api.v2.ProjectMemberService/Delete": {},
+ "/metalstack.api.v2.ProjectMemberService/Get": {},
+ "/metalstack.api.v2.ProjectMemberService/Leave": {},
+ "/metalstack.api.v2.ProjectMemberService/List": {},
+ "/metalstack.api.v2.ProjectMemberService/Update": {},
"/metalstack.api.v2.ProjectService/Create": {},
"/metalstack.api.v2.ProjectService/Delete": {},
"/metalstack.api.v2.ProjectService/Get": {},
@@ -394,17 +418,19 @@ func GetServicePermissions() *ServicePermissions {
"/metalstack.api.v2.ProjectService/InviteDelete": {},
"/metalstack.api.v2.ProjectService/InviteGet": {},
"/metalstack.api.v2.ProjectService/InvitesList": {},
- "/metalstack.api.v2.ProjectService/Leave": {},
"/metalstack.api.v2.ProjectService/List": {},
- "/metalstack.api.v2.ProjectService/RemoveMember": {},
"/metalstack.api.v2.ProjectService/Update": {},
- "/metalstack.api.v2.ProjectService/UpdateMember": {},
"/metalstack.api.v2.SizeImageConstraintService/Try": {},
"/metalstack.api.v2.SizeReservationService/Get": {},
"/metalstack.api.v2.SizeReservationService/List": {},
"/metalstack.api.v2.SizeService/Get": {},
"/metalstack.api.v2.SizeService/List": {},
- "/metalstack.api.v2.TenantService/AddMember": {},
+ "/metalstack.api.v2.TenantMemberService/Create": {},
+ "/metalstack.api.v2.TenantMemberService/Delete": {},
+ "/metalstack.api.v2.TenantMemberService/Get": {},
+ "/metalstack.api.v2.TenantMemberService/Leave": {},
+ "/metalstack.api.v2.TenantMemberService/List": {},
+ "/metalstack.api.v2.TenantMemberService/Update": {},
"/metalstack.api.v2.TenantService/Create": {},
"/metalstack.api.v2.TenantService/Delete": {},
"/metalstack.api.v2.TenantService/Get": {},
@@ -413,11 +439,8 @@ func GetServicePermissions() *ServicePermissions {
"/metalstack.api.v2.TenantService/InviteDelete": {},
"/metalstack.api.v2.TenantService/InviteGet": {},
"/metalstack.api.v2.TenantService/InvitesList": {},
- "/metalstack.api.v2.TenantService/Leave": {},
"/metalstack.api.v2.TenantService/List": {},
- "/metalstack.api.v2.TenantService/RemoveMember": {},
"/metalstack.api.v2.TenantService/Update": {},
- "/metalstack.api.v2.TenantService/UpdateMember": {},
"/metalstack.api.v2.TokenService/Create": {},
"/metalstack.api.v2.TokenService/Get": {},
"/metalstack.api.v2.TokenService/List": {},
@@ -459,12 +482,14 @@ func GetServicePermissions() *ServicePermissions {
"/metalstack.api.v2.MethodService/TokenScopedList": true,
"/metalstack.api.v2.PartitionService/Get": true,
"/metalstack.api.v2.PartitionService/List": true,
+ "/metalstack.api.v2.ProjectMemberService/Leave": true,
"/metalstack.api.v2.ProjectService/InviteAccept": true,
"/metalstack.api.v2.ProjectService/InviteGet": true,
"/metalstack.api.v2.ProjectService/List": true,
"/metalstack.api.v2.SizeImageConstraintService/Try": true,
"/metalstack.api.v2.SizeService/Get": true,
"/metalstack.api.v2.SizeService/List": true,
+ "/metalstack.api.v2.TenantMemberService/Leave": true,
"/metalstack.api.v2.TenantService/Create": true,
"/metalstack.api.v2.TenantService/InviteAccept": true,
"/metalstack.api.v2.TenantService/InviteGet": true,
@@ -513,7 +538,10 @@ func GetServicePermissions() *ServicePermissions {
"/metalstack.admin.v2.PartitionService/Create": true,
"/metalstack.admin.v2.PartitionService/Delete": true,
"/metalstack.admin.v2.PartitionService/Update": true,
+ "/metalstack.admin.v2.ProjectService/AddMember": true,
+ "/metalstack.admin.v2.ProjectService/Create": true,
"/metalstack.admin.v2.ProjectService/List": true,
+ "/metalstack.admin.v2.ProjectService/RemoveMember": true,
"/metalstack.admin.v2.SizeImageConstraintService/Create": true,
"/metalstack.admin.v2.SizeImageConstraintService/Delete": true,
"/metalstack.admin.v2.SizeImageConstraintService/Get": true,
@@ -570,16 +598,17 @@ func GetServicePermissions() *ServicePermissions {
"/metalstack.api.v2.AuditService/Get": true,
"/metalstack.api.v2.AuditService/List": true,
"/metalstack.api.v2.ProjectService/Create": true,
- "/metalstack.api.v2.TenantService/AddMember": true,
+ "/metalstack.api.v2.TenantMemberService/Create": true,
+ "/metalstack.api.v2.TenantMemberService/Delete": true,
+ "/metalstack.api.v2.TenantMemberService/Get": true,
+ "/metalstack.api.v2.TenantMemberService/List": true,
+ "/metalstack.api.v2.TenantMemberService/Update": true,
"/metalstack.api.v2.TenantService/Delete": true,
"/metalstack.api.v2.TenantService/Get": true,
"/metalstack.api.v2.TenantService/Invite": true,
"/metalstack.api.v2.TenantService/InviteDelete": true,
"/metalstack.api.v2.TenantService/InvitesList": true,
- "/metalstack.api.v2.TenantService/Leave": true,
- "/metalstack.api.v2.TenantService/RemoveMember": true,
"/metalstack.api.v2.TenantService/Update": true,
- "/metalstack.api.v2.TenantService/UpdateMember": true,
},
Project: map[string]bool{
"/metalstack.api.v2.IPService/Create": true,
@@ -600,16 +629,17 @@ func GetServicePermissions() *ServicePermissions {
"/metalstack.api.v2.NetworkService/List": true,
"/metalstack.api.v2.NetworkService/ListBaseNetworks": true,
"/metalstack.api.v2.NetworkService/Update": true,
- "/metalstack.api.v2.ProjectService/AddMember": true,
+ "/metalstack.api.v2.ProjectMemberService/Create": true,
+ "/metalstack.api.v2.ProjectMemberService/Delete": true,
+ "/metalstack.api.v2.ProjectMemberService/Get": true,
+ "/metalstack.api.v2.ProjectMemberService/List": true,
+ "/metalstack.api.v2.ProjectMemberService/Update": true,
"/metalstack.api.v2.ProjectService/Delete": true,
"/metalstack.api.v2.ProjectService/Get": true,
"/metalstack.api.v2.ProjectService/Invite": true,
"/metalstack.api.v2.ProjectService/InviteDelete": true,
"/metalstack.api.v2.ProjectService/InvitesList": true,
- "/metalstack.api.v2.ProjectService/Leave": true,
- "/metalstack.api.v2.ProjectService/RemoveMember": true,
"/metalstack.api.v2.ProjectService/Update": true,
- "/metalstack.api.v2.ProjectService/UpdateMember": true,
"/metalstack.api.v2.SizeReservationService/Get": true,
"/metalstack.api.v2.SizeReservationService/List": true,
},
@@ -650,7 +680,10 @@ func GetServicePermissions() *ServicePermissions {
"/metalstack.admin.v2.PartitionService/Create": true,
"/metalstack.admin.v2.PartitionService/Delete": true,
"/metalstack.admin.v2.PartitionService/Update": true,
+ "/metalstack.admin.v2.ProjectService/AddMember": true,
+ "/metalstack.admin.v2.ProjectService/Create": true,
"/metalstack.admin.v2.ProjectService/List": false,
+ "/metalstack.admin.v2.ProjectService/RemoveMember": true,
"/metalstack.admin.v2.SizeImageConstraintService/Create": true,
"/metalstack.admin.v2.SizeImageConstraintService/Delete": true,
"/metalstack.admin.v2.SizeImageConstraintService/Get": false,
@@ -713,7 +746,12 @@ func GetServicePermissions() *ServicePermissions {
"/metalstack.api.v2.NetworkService/Update": true,
"/metalstack.api.v2.PartitionService/Get": false,
"/metalstack.api.v2.PartitionService/List": false,
- "/metalstack.api.v2.ProjectService/AddMember": true,
+ "/metalstack.api.v2.ProjectMemberService/Create": true,
+ "/metalstack.api.v2.ProjectMemberService/Delete": true,
+ "/metalstack.api.v2.ProjectMemberService/Get": false,
+ "/metalstack.api.v2.ProjectMemberService/Leave": true,
+ "/metalstack.api.v2.ProjectMemberService/List": false,
+ "/metalstack.api.v2.ProjectMemberService/Update": true,
"/metalstack.api.v2.ProjectService/Create": true,
"/metalstack.api.v2.ProjectService/Delete": true,
"/metalstack.api.v2.ProjectService/Get": false,
@@ -722,17 +760,19 @@ func GetServicePermissions() *ServicePermissions {
"/metalstack.api.v2.ProjectService/InviteDelete": true,
"/metalstack.api.v2.ProjectService/InviteGet": false,
"/metalstack.api.v2.ProjectService/InvitesList": false,
- "/metalstack.api.v2.ProjectService/Leave": true,
"/metalstack.api.v2.ProjectService/List": false,
- "/metalstack.api.v2.ProjectService/RemoveMember": true,
"/metalstack.api.v2.ProjectService/Update": true,
- "/metalstack.api.v2.ProjectService/UpdateMember": true,
"/metalstack.api.v2.SizeImageConstraintService/Try": false,
"/metalstack.api.v2.SizeReservationService/Get": false,
"/metalstack.api.v2.SizeReservationService/List": false,
"/metalstack.api.v2.SizeService/Get": false,
"/metalstack.api.v2.SizeService/List": false,
- "/metalstack.api.v2.TenantService/AddMember": true,
+ "/metalstack.api.v2.TenantMemberService/Create": true,
+ "/metalstack.api.v2.TenantMemberService/Delete": true,
+ "/metalstack.api.v2.TenantMemberService/Get": false,
+ "/metalstack.api.v2.TenantMemberService/Leave": true,
+ "/metalstack.api.v2.TenantMemberService/List": false,
+ "/metalstack.api.v2.TenantMemberService/Update": true,
"/metalstack.api.v2.TenantService/Create": true,
"/metalstack.api.v2.TenantService/Delete": true,
"/metalstack.api.v2.TenantService/Get": false,
@@ -741,11 +781,8 @@ func GetServicePermissions() *ServicePermissions {
"/metalstack.api.v2.TenantService/InviteDelete": true,
"/metalstack.api.v2.TenantService/InviteGet": false,
"/metalstack.api.v2.TenantService/InvitesList": false,
- "/metalstack.api.v2.TenantService/Leave": true,
"/metalstack.api.v2.TenantService/List": false,
- "/metalstack.api.v2.TenantService/RemoveMember": true,
"/metalstack.api.v2.TenantService/Update": true,
- "/metalstack.api.v2.TenantService/UpdateMember": true,
"/metalstack.api.v2.TokenService/Create": true,
"/metalstack.api.v2.TokenService/Get": true,
"/metalstack.api.v2.TokenService/List": true,
diff --git a/js/client.d.ts b/js/client.d.ts
index 1e868edf..d0bfb698 100644
--- a/js/client.d.ts
+++ b/js/client.d.ts
@@ -27,10 +27,12 @@ import { MethodService as Apiv2MethodService } from "./metalstack/api/v2/method_
import { NetworkService as Apiv2NetworkService } from "./metalstack/api/v2/network_pb";
import { PartitionService as Apiv2PartitionService } from "./metalstack/api/v2/partition_pb";
import { ProjectService as Apiv2ProjectService } from "./metalstack/api/v2/project_pb";
+import { ProjectMemberService as Apiv2ProjectMemberService } from "./metalstack/api/v2/project_member_pb";
import { SizeService as Apiv2SizeService } from "./metalstack/api/v2/size_pb";
import { SizeImageConstraintService as Apiv2SizeImageConstraintService } from "./metalstack/api/v2/size_imageconstraint_pb";
import { SizeReservationService as Apiv2SizeReservationService } from "./metalstack/api/v2/size_reservation_pb";
import { TenantService as Apiv2TenantService } from "./metalstack/api/v2/tenant_pb";
+import { TenantMemberService as Apiv2TenantMemberService } from "./metalstack/api/v2/tenant_member_pb";
import { TokenService as Apiv2TokenService } from "./metalstack/api/v2/token_pb";
import { UserService as Apiv2UserService } from "./metalstack/api/v2/user_pb";
import { VersionService as Apiv2VersionService } from "./metalstack/api/v2/version_pb";
@@ -79,10 +81,12 @@ export interface Apiv2 {
network(): ConnectClient;
partition(): ConnectClient;
project(): ConnectClient;
+ projectMember(): ConnectClient;
size(): ConnectClient;
sizeImageConstraint(): ConnectClient;
sizeReservation(): ConnectClient;
tenant(): ConnectClient;
+ tenantMember(): ConnectClient;
token(): ConnectClient;
user(): ConnectClient;
version(): ConnectClient;
diff --git a/js/client.js b/js/client.js
index f04ea75e..3bb94b3b 100644
--- a/js/client.js
+++ b/js/client.js
@@ -37,10 +37,12 @@ import { MethodService as Apiv2MethodService } from "./metalstack/api/v2/method_
import { NetworkService as Apiv2NetworkService } from "./metalstack/api/v2/network_pb";
import { PartitionService as Apiv2PartitionService } from "./metalstack/api/v2/partition_pb";
import { ProjectService as Apiv2ProjectService } from "./metalstack/api/v2/project_pb";
+import { ProjectMemberService as Apiv2ProjectMemberService } from "./metalstack/api/v2/project_member_pb";
import { SizeService as Apiv2SizeService } from "./metalstack/api/v2/size_pb";
import { SizeImageConstraintService as Apiv2SizeImageConstraintService } from "./metalstack/api/v2/size_imageconstraint_pb";
import { SizeReservationService as Apiv2SizeReservationService } from "./metalstack/api/v2/size_reservation_pb";
import { TenantService as Apiv2TenantService } from "./metalstack/api/v2/tenant_pb";
+import { TenantMemberService as Apiv2TenantMemberService } from "./metalstack/api/v2/tenant_member_pb";
import { TokenService as Apiv2TokenService } from "./metalstack/api/v2/token_pb";
import { UserService as Apiv2UserService } from "./metalstack/api/v2/user_pb";
import { VersionService as Apiv2VersionService } from "./metalstack/api/v2/version_pb";
@@ -267,6 +269,12 @@ class Apiv2Impl {
}
return this._project;
}
+ projectMember() {
+ if (!this._projectMember) {
+ this._projectMember = createClient(Apiv2ProjectMemberService, this.transport);
+ }
+ return this._projectMember;
+ }
size() {
if (!this._size) {
this._size = createClient(Apiv2SizeService, this.transport);
@@ -291,6 +299,12 @@ class Apiv2Impl {
}
return this._tenant;
}
+ tenantMember() {
+ if (!this._tenantMember) {
+ this._tenantMember = createClient(Apiv2TenantMemberService, this.transport);
+ }
+ return this._tenantMember;
+ }
token() {
if (!this._token) {
this._token = createClient(Apiv2TokenService, this.transport);
diff --git a/js/client.ts b/js/client.ts
index 1327b1ed..9a9f483f 100755
--- a/js/client.ts
+++ b/js/client.ts
@@ -61,6 +61,8 @@ import { PartitionService as Apiv2PartitionService } from "./metalstack/api/v2/p
import { ProjectService as Apiv2ProjectService } from "./metalstack/api/v2/project_pb";
+import { ProjectMemberService as Apiv2ProjectMemberService } from "./metalstack/api/v2/project_member_pb";
+
import { SizeService as Apiv2SizeService } from "./metalstack/api/v2/size_pb";
import { SizeImageConstraintService as Apiv2SizeImageConstraintService } from "./metalstack/api/v2/size_imageconstraint_pb";
@@ -69,6 +71,8 @@ import { SizeReservationService as Apiv2SizeReservationService } from "./metalst
import { TenantService as Apiv2TenantService } from "./metalstack/api/v2/tenant_pb";
+import { TenantMemberService as Apiv2TenantMemberService } from "./metalstack/api/v2/tenant_member_pb";
+
import { TokenService as Apiv2TokenService } from "./metalstack/api/v2/token_pb";
import { UserService as Apiv2UserService } from "./metalstack/api/v2/user_pb";
@@ -167,6 +171,8 @@ export interface Apiv2 {
project(): ConnectClient;
+ projectMember(): ConnectClient;
+
size(): ConnectClient;
sizeImageConstraint(): ConnectClient;
@@ -175,6 +181,8 @@ export interface Apiv2 {
tenant(): ConnectClient;
+ tenantMember(): ConnectClient;
+
token(): ConnectClient;
user(): ConnectClient;
@@ -460,6 +468,8 @@ class Apiv2Impl implements Apiv2 {
private _project?: ConnectClient;
+ private _projectMember?: ConnectClient;
+
private _size?: ConnectClient;
private _sizeImageConstraint?: ConnectClient;
@@ -468,6 +478,8 @@ class Apiv2Impl implements Apiv2 {
private _tenant?: ConnectClient;
+ private _tenantMember?: ConnectClient;
+
private _token?: ConnectClient;
private _user?: ConnectClient;
@@ -550,6 +562,13 @@ class Apiv2Impl implements Apiv2 {
return this._project;
}
+ projectMember(): ConnectClient {
+ if (!this._projectMember) {
+ this._projectMember = createClient(Apiv2ProjectMemberService, this.transport);
+ }
+ return this._projectMember;
+ }
+
size(): ConnectClient {
if (!this._size) {
this._size = createClient(Apiv2SizeService, this.transport);
@@ -578,6 +597,13 @@ class Apiv2Impl implements Apiv2 {
return this._tenant;
}
+ tenantMember(): ConnectClient {
+ if (!this._tenantMember) {
+ this._tenantMember = createClient(Apiv2TenantMemberService, this.transport);
+ }
+ return this._tenantMember;
+ }
+
token(): ConnectClient {
if (!this._token) {
this._token = createClient(Apiv2TokenService, this.transport);
diff --git a/js/metalstack/admin/v2/project_pb.d.ts b/js/metalstack/admin/v2/project_pb.d.ts
index 47336ba7..c0779199 100644
--- a/js/metalstack/admin/v2/project_pb.d.ts
+++ b/js/metalstack/admin/v2/project_pb.d.ts
@@ -1,5 +1,7 @@
import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
+import type { Labels, ProjectRole } from "../../api/v2/common_pb";
import type { Project, ProjectQuery } from "../../api/v2/project_pb";
+import type { ProjectMember } from "../../api/v2/project_member_pb";
import type { Message } from "@bufbuild/protobuf";
/**
* Describes the file metalstack/admin/v2/project.proto.
@@ -41,12 +43,178 @@ export type ProjectServiceListResponse = Message<"metalstack.admin.v2.ProjectSer
* Use `create(ProjectServiceListResponseSchema)` to create a new message.
*/
export declare const ProjectServiceListResponseSchema: GenMessage;
+/**
+ * ProjectServiceCreateRequest is the request payload to Create a project.
+ *
+ * @generated from message metalstack.admin.v2.ProjectServiceCreateRequest
+ */
+export type ProjectServiceCreateRequest = Message<"metalstack.admin.v2.ProjectServiceCreateRequest"> & {
+ /**
+ * Login is the tenant of this project.
+ *
+ * @generated from field: string login = 1;
+ */
+ login: string;
+ /**
+ * Name of this project, unique per tenant.
+ *
+ * @generated from field: string name = 2;
+ */
+ name: string;
+ /**
+ * Description of this project.
+ *
+ * @generated from field: string description = 3;
+ */
+ description: string;
+ /**
+ * Avatar URL of the project.
+ *
+ * @generated from field: optional string avatar_url = 4;
+ */
+ avatarUrl?: string | undefined;
+ /**
+ * Labels on the project.
+ *
+ * @generated from field: metalstack.api.v2.Labels labels = 5;
+ */
+ labels?: Labels | undefined;
+ /**
+ * Project is the uuid of the project.
+ *
+ * @generated from field: optional string project = 6;
+ */
+ project?: string | undefined;
+};
+/**
+ * Describes the message metalstack.admin.v2.ProjectServiceCreateRequest.
+ * Use `create(ProjectServiceCreateRequestSchema)` to create a new message.
+ */
+export declare const ProjectServiceCreateRequestSchema: GenMessage;
+/**
+ * ProjectServiceCreateResponse is the response payload for creating a project.
+ *
+ * @generated from message metalstack.admin.v2.ProjectServiceCreateResponse
+ */
+export type ProjectServiceCreateResponse = Message<"metalstack.admin.v2.ProjectServiceCreateResponse"> & {
+ /**
+ * Project contains the created project.
+ *
+ * @generated from field: metalstack.api.v2.Project project = 1;
+ */
+ project?: Project | undefined;
+};
+/**
+ * Describes the message metalstack.admin.v2.ProjectServiceCreateResponse.
+ * Use `create(ProjectServiceCreateResponseSchema)` to create a new message.
+ */
+export declare const ProjectServiceCreateResponseSchema: GenMessage;
+/**
+ * ProjectServiceAddMemberRequest is the request payload for adding a member to a tenant.
+ *
+ * @generated from message metalstack.admin.v2.ProjectServiceAddMemberRequest
+ */
+export type ProjectServiceAddMemberRequest = Message<"metalstack.admin.v2.ProjectServiceAddMemberRequest"> & {
+ /**
+ * Project is the uuid of the project.
+ *
+ * @generated from field: string project = 1;
+ */
+ project: string;
+ /**
+ * Login of the member to add.
+ *
+ * @generated from field: string member = 2;
+ */
+ member: string;
+ /**
+ * Role to assign to the new member.
+ *
+ * @generated from field: metalstack.api.v2.ProjectRole role = 3;
+ */
+ role: ProjectRole;
+};
+/**
+ * Describes the message metalstack.admin.v2.ProjectServiceAddMemberRequest.
+ * Use `create(ProjectServiceAddMemberRequestSchema)` to create a new message.
+ */
+export declare const ProjectServiceAddMemberRequestSchema: GenMessage;
+/**
+ * ProjectServiceAddMemberResponse is the response payload for the add member request.
+ *
+ * @generated from message metalstack.admin.v2.ProjectServiceAddMemberResponse
+ */
+export type ProjectServiceAddMemberResponse = Message<"metalstack.admin.v2.ProjectServiceAddMemberResponse"> & {
+ /**
+ * Member is the added project member.
+ *
+ * @generated from field: metalstack.api.v2.ProjectMember member = 1;
+ */
+ member?: ProjectMember | undefined;
+};
+/**
+ * Describes the message metalstack.admin.v2.ProjectServiceAddMemberResponse.
+ * Use `create(ProjectServiceAddMemberResponseSchema)` to create a new message.
+ */
+export declare const ProjectServiceAddMemberResponseSchema: GenMessage;
+/**
+ * ProjectServiceRemoveMemberRequest is the request payload for removing a member from a project.
+ *
+ * @generated from message metalstack.admin.v2.ProjectServiceRemoveMemberRequest
+ */
+export type ProjectServiceRemoveMemberRequest = Message<"metalstack.admin.v2.ProjectServiceRemoveMemberRequest"> & {
+ /**
+ * Project is the uuid of the project.
+ *
+ * @generated from field: string project = 1;
+ */
+ project: string;
+ /**
+ * Login of the member to remove.
+ *
+ * @generated from field: string member = 2;
+ */
+ member: string;
+};
+/**
+ * Describes the message metalstack.admin.v2.ProjectServiceRemoveMemberRequest.
+ * Use `create(ProjectServiceRemoveMemberRequestSchema)` to create a new message.
+ */
+export declare const ProjectServiceRemoveMemberRequestSchema: GenMessage;
+/**
+ * ProjectServiceRemoveMemberResponse is the response payload for the remove member request.
+ *
+ * @generated from message metalstack.admin.v2.ProjectServiceRemoveMemberResponse
+ */
+export type ProjectServiceRemoveMemberResponse = Message<"metalstack.admin.v2.ProjectServiceRemoveMemberResponse"> & {
+ /**
+ * Member is the removed project member.
+ *
+ * @generated from field: metalstack.api.v2.ProjectMember member = 1;
+ */
+ member?: ProjectMember | undefined;
+};
+/**
+ * Describes the message metalstack.admin.v2.ProjectServiceRemoveMemberResponse.
+ * Use `create(ProjectServiceRemoveMemberResponseSchema)` to create a new message.
+ */
+export declare const ProjectServiceRemoveMemberResponseSchema: GenMessage;
/**
* ProjectService provides project management operations.
*
* @generated from service metalstack.admin.v2.ProjectService
*/
export declare const ProjectService: GenService<{
+ /**
+ * Creates a new project.
+ *
+ * @generated from rpc metalstack.admin.v2.ProjectService.Create
+ */
+ create: {
+ methodKind: "unary";
+ input: typeof ProjectServiceCreateRequestSchema;
+ output: typeof ProjectServiceCreateResponseSchema;
+ };
/**
* Returns the list of projects matching the filter criteria.
*
@@ -57,4 +225,24 @@ export declare const ProjectService: GenService<{
input: typeof ProjectServiceListRequestSchema;
output: typeof ProjectServiceListResponseSchema;
};
+ /**
+ * Add a member to a project.
+ *
+ * @generated from rpc metalstack.admin.v2.ProjectService.AddMember
+ */
+ addMember: {
+ methodKind: "unary";
+ input: typeof ProjectServiceAddMemberRequestSchema;
+ output: typeof ProjectServiceAddMemberResponseSchema;
+ };
+ /**
+ * RemoveMember removes a member from a project.
+ *
+ * @generated from rpc metalstack.admin.v2.ProjectService.RemoveMember
+ */
+ removeMember: {
+ methodKind: "unary";
+ input: typeof ProjectServiceRemoveMemberRequestSchema;
+ output: typeof ProjectServiceRemoveMemberResponseSchema;
+ };
}>;
diff --git a/js/metalstack/admin/v2/project_pb.js b/js/metalstack/admin/v2/project_pb.js
index 93d57d0b..e0e1d028 100644
--- a/js/metalstack/admin/v2/project_pb.js
+++ b/js/metalstack/admin/v2/project_pb.js
@@ -2,12 +2,15 @@
// @generated from file metalstack/admin/v2/project.proto (package metalstack.admin.v2, syntax proto3)
/* eslint-disable */
import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
+import { file_buf_validate_validate } from "../../../buf/validate/validate_pb";
import { file_metalstack_api_v2_common } from "../../api/v2/common_pb";
+import { file_metalstack_api_v2_predefined_rules } from "../../api/v2/predefined_rules_pb";
import { file_metalstack_api_v2_project } from "../../api/v2/project_pb";
+import { file_metalstack_api_v2_project_member } from "../../api/v2/project_member_pb";
/**
* Describes the file metalstack/admin/v2/project.proto.
*/
-export const file_metalstack_admin_v2_project = /*@__PURE__*/ fileDesc("CiFtZXRhbHN0YWNrL2FkbWluL3YyL3Byb2plY3QucHJvdG8SE21ldGFsc3RhY2suYWRtaW4udjIiWgoZUHJvamVjdFNlcnZpY2VMaXN0UmVxdWVzdBIzCgVxdWVyeRgBIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RRdWVyeUgAiAEBQggKBl9xdWVyeSJKChpQcm9qZWN0U2VydmljZUxpc3RSZXNwb25zZRIsCghwcm9qZWN0cxgBIAMoCzIaLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3QyhQEKDlByb2plY3RTZXJ2aWNlEnMKBExpc3QSLi5tZXRhbHN0YWNrLmFkbWluLnYyLlByb2plY3RTZXJ2aWNlTGlzdFJlcXVlc3QaLy5tZXRhbHN0YWNrLmFkbWluLnYyLlByb2plY3RTZXJ2aWNlTGlzdFJlc3BvbnNlIgrS8xgCAQLg8xgCQtABChdjb20ubWV0YWxzdGFjay5hZG1pbi52MkIMUHJvamVjdFByb3RvUAFaOWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYWRtaW4vdjI7YWRtaW52MqICA01BWKoCE01ldGFsc3RhY2suQWRtaW4uVjLKAhNNZXRhbHN0YWNrXEFkbWluXFYy4gIfTWV0YWxzdGFja1xBZG1pblxWMlxHUEJNZXRhZGF0YeoCFU1ldGFsc3RhY2s6OkFkbWluOjpWMmIGcHJvdG8z", [file_metalstack_api_v2_common, file_metalstack_api_v2_project]);
+export const file_metalstack_admin_v2_project = /*@__PURE__*/ fileDesc("CiFtZXRhbHN0YWNrL2FkbWluL3YyL3Byb2plY3QucHJvdG8SE21ldGFsc3RhY2suYWRtaW4udjIiWgoZUHJvamVjdFNlcnZpY2VMaXN0UmVxdWVzdBIzCgVxdWVyeRgBIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RRdWVyeUgAiAEBQggKBl9xdWVyeSJKChpQcm9qZWN0U2VydmljZUxpc3RSZXNwb25zZRIsCghwcm9qZWN0cxgBIAMoCzIaLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3QiggIKG1Byb2plY3RTZXJ2aWNlQ3JlYXRlUmVxdWVzdBIaCgVsb2dpbhgBIAEoCUILukgIcgbAs66xAgESGQoEbmFtZRgCIAEoCUILukgIcgbAs66xAgESIAoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBEiQKCmF2YXRhcl91cmwYBCABKAlCC7pICHIG4LOusQIBSACIAQESKQoGbGFiZWxzGAUgASgLMhkubWV0YWxzdGFjay5hcGkudjIuTGFiZWxzEh4KB3Byb2plY3QYBiABKAlCCLpIBXIDsAEBSAGIAQFCDQoLX2F2YXRhcl91cmxCCgoIX3Byb2plY3QiSwocUHJvamVjdFNlcnZpY2VDcmVhdGVSZXNwb25zZRIrCgdwcm9qZWN0GAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdCKQAQoeUHJvamVjdFNlcnZpY2VBZGRNZW1iZXJSZXF1ZXN0EhkKB3Byb2plY3QYASABKAlCCLpIBXIDsAEBEhsKBm1lbWJlchgCIAEoCUILukgIcgaQtK6xAgESNgoEcm9sZRgDIAEoDjIeLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RSb2xlQgi6SAWCAQIQASJTCh9Qcm9qZWN0U2VydmljZUFkZE1lbWJlclJlc3BvbnNlEjAKBm1lbWJlchgBIAEoCzIgLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RNZW1iZXIiWwohUHJvamVjdFNlcnZpY2VSZW1vdmVNZW1iZXJSZXF1ZXN0EhkKB3Byb2plY3QYASABKAlCCLpIBXIDsAEBEhsKBm1lbWJlchgCIAEoCUILukgIcgaQtK6xAgEiVgoiUHJvamVjdFNlcnZpY2VSZW1vdmVNZW1iZXJSZXNwb25zZRIwCgZtZW1iZXIYASABKAsyIC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0TWVtYmVyMpAECg5Qcm9qZWN0U2VydmljZRJ4CgZDcmVhdGUSMC5tZXRhbHN0YWNrLmFkbWluLnYyLlByb2plY3RTZXJ2aWNlQ3JlYXRlUmVxdWVzdBoxLm1ldGFsc3RhY2suYWRtaW4udjIuUHJvamVjdFNlcnZpY2VDcmVhdGVSZXNwb25zZSIJ0vMYAQHg8xgBEnMKBExpc3QSLi5tZXRhbHN0YWNrLmFkbWluLnYyLlByb2plY3RTZXJ2aWNlTGlzdFJlcXVlc3QaLy5tZXRhbHN0YWNrLmFkbWluLnYyLlByb2plY3RTZXJ2aWNlTGlzdFJlc3BvbnNlIgrS8xgCAQLg8xgCEoEBCglBZGRNZW1iZXISMy5tZXRhbHN0YWNrLmFkbWluLnYyLlByb2plY3RTZXJ2aWNlQWRkTWVtYmVyUmVxdWVzdBo0Lm1ldGFsc3RhY2suYWRtaW4udjIuUHJvamVjdFNlcnZpY2VBZGRNZW1iZXJSZXNwb25zZSIJ0vMYAQHg8xgBEooBCgxSZW1vdmVNZW1iZXISNi5tZXRhbHN0YWNrLmFkbWluLnYyLlByb2plY3RTZXJ2aWNlUmVtb3ZlTWVtYmVyUmVxdWVzdBo3Lm1ldGFsc3RhY2suYWRtaW4udjIuUHJvamVjdFNlcnZpY2VSZW1vdmVNZW1iZXJSZXNwb25zZSIJ0vMYAQHg8xgBQtABChdjb20ubWV0YWxzdGFjay5hZG1pbi52MkIMUHJvamVjdFByb3RvUAFaOWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYWRtaW4vdjI7YWRtaW52MqICA01BWKoCE01ldGFsc3RhY2suQWRtaW4uVjLKAhNNZXRhbHN0YWNrXEFkbWluXFYy4gIfTWV0YWxzdGFja1xBZG1pblxWMlxHUEJNZXRhZGF0YeoCFU1ldGFsc3RhY2s6OkFkbWluOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules, file_metalstack_api_v2_project, file_metalstack_api_v2_project_member]);
/**
* Describes the message metalstack.admin.v2.ProjectServiceListRequest.
* Use `create(ProjectServiceListRequestSchema)` to create a new message.
@@ -18,6 +21,36 @@ export const ProjectServiceListRequestSchema = /*@__PURE__*/ messageDesc(file_me
* Use `create(ProjectServiceListResponseSchema)` to create a new message.
*/
export const ProjectServiceListResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_admin_v2_project, 1);
+/**
+ * Describes the message metalstack.admin.v2.ProjectServiceCreateRequest.
+ * Use `create(ProjectServiceCreateRequestSchema)` to create a new message.
+ */
+export const ProjectServiceCreateRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_admin_v2_project, 2);
+/**
+ * Describes the message metalstack.admin.v2.ProjectServiceCreateResponse.
+ * Use `create(ProjectServiceCreateResponseSchema)` to create a new message.
+ */
+export const ProjectServiceCreateResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_admin_v2_project, 3);
+/**
+ * Describes the message metalstack.admin.v2.ProjectServiceAddMemberRequest.
+ * Use `create(ProjectServiceAddMemberRequestSchema)` to create a new message.
+ */
+export const ProjectServiceAddMemberRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_admin_v2_project, 4);
+/**
+ * Describes the message metalstack.admin.v2.ProjectServiceAddMemberResponse.
+ * Use `create(ProjectServiceAddMemberResponseSchema)` to create a new message.
+ */
+export const ProjectServiceAddMemberResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_admin_v2_project, 5);
+/**
+ * Describes the message metalstack.admin.v2.ProjectServiceRemoveMemberRequest.
+ * Use `create(ProjectServiceRemoveMemberRequestSchema)` to create a new message.
+ */
+export const ProjectServiceRemoveMemberRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_admin_v2_project, 6);
+/**
+ * Describes the message metalstack.admin.v2.ProjectServiceRemoveMemberResponse.
+ * Use `create(ProjectServiceRemoveMemberResponseSchema)` to create a new message.
+ */
+export const ProjectServiceRemoveMemberResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_admin_v2_project, 7);
/**
* ProjectService provides project management operations.
*
diff --git a/js/metalstack/admin/v2/project_pb.ts b/js/metalstack/admin/v2/project_pb.ts
index 591b3a13..794d13d7 100644
--- a/js/metalstack/admin/v2/project_pb.ts
+++ b/js/metalstack/admin/v2/project_pb.ts
@@ -4,16 +4,21 @@
import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
+import { file_buf_validate_validate } from "../../../buf/validate/validate_pb";
+import type { Labels, ProjectRole } from "../../api/v2/common_pb";
import { file_metalstack_api_v2_common } from "../../api/v2/common_pb";
+import { file_metalstack_api_v2_predefined_rules } from "../../api/v2/predefined_rules_pb";
import type { Project, ProjectQuery } from "../../api/v2/project_pb";
import { file_metalstack_api_v2_project } from "../../api/v2/project_pb";
+import type { ProjectMember } from "../../api/v2/project_member_pb";
+import { file_metalstack_api_v2_project_member } from "../../api/v2/project_member_pb";
import type { Message } from "@bufbuild/protobuf";
/**
* Describes the file metalstack/admin/v2/project.proto.
*/
export const file_metalstack_admin_v2_project: GenFile = /*@__PURE__*/
- fileDesc("CiFtZXRhbHN0YWNrL2FkbWluL3YyL3Byb2plY3QucHJvdG8SE21ldGFsc3RhY2suYWRtaW4udjIiWgoZUHJvamVjdFNlcnZpY2VMaXN0UmVxdWVzdBIzCgVxdWVyeRgBIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RRdWVyeUgAiAEBQggKBl9xdWVyeSJKChpQcm9qZWN0U2VydmljZUxpc3RSZXNwb25zZRIsCghwcm9qZWN0cxgBIAMoCzIaLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3QyhQEKDlByb2plY3RTZXJ2aWNlEnMKBExpc3QSLi5tZXRhbHN0YWNrLmFkbWluLnYyLlByb2plY3RTZXJ2aWNlTGlzdFJlcXVlc3QaLy5tZXRhbHN0YWNrLmFkbWluLnYyLlByb2plY3RTZXJ2aWNlTGlzdFJlc3BvbnNlIgrS8xgCAQLg8xgCQtABChdjb20ubWV0YWxzdGFjay5hZG1pbi52MkIMUHJvamVjdFByb3RvUAFaOWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYWRtaW4vdjI7YWRtaW52MqICA01BWKoCE01ldGFsc3RhY2suQWRtaW4uVjLKAhNNZXRhbHN0YWNrXEFkbWluXFYy4gIfTWV0YWxzdGFja1xBZG1pblxWMlxHUEJNZXRhZGF0YeoCFU1ldGFsc3RhY2s6OkFkbWluOjpWMmIGcHJvdG8z", [file_metalstack_api_v2_common, file_metalstack_api_v2_project]);
+ fileDesc("CiFtZXRhbHN0YWNrL2FkbWluL3YyL3Byb2plY3QucHJvdG8SE21ldGFsc3RhY2suYWRtaW4udjIiWgoZUHJvamVjdFNlcnZpY2VMaXN0UmVxdWVzdBIzCgVxdWVyeRgBIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RRdWVyeUgAiAEBQggKBl9xdWVyeSJKChpQcm9qZWN0U2VydmljZUxpc3RSZXNwb25zZRIsCghwcm9qZWN0cxgBIAMoCzIaLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3QiggIKG1Byb2plY3RTZXJ2aWNlQ3JlYXRlUmVxdWVzdBIaCgVsb2dpbhgBIAEoCUILukgIcgbAs66xAgESGQoEbmFtZRgCIAEoCUILukgIcgbAs66xAgESIAoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBEiQKCmF2YXRhcl91cmwYBCABKAlCC7pICHIG4LOusQIBSACIAQESKQoGbGFiZWxzGAUgASgLMhkubWV0YWxzdGFjay5hcGkudjIuTGFiZWxzEh4KB3Byb2plY3QYBiABKAlCCLpIBXIDsAEBSAGIAQFCDQoLX2F2YXRhcl91cmxCCgoIX3Byb2plY3QiSwocUHJvamVjdFNlcnZpY2VDcmVhdGVSZXNwb25zZRIrCgdwcm9qZWN0GAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdCKQAQoeUHJvamVjdFNlcnZpY2VBZGRNZW1iZXJSZXF1ZXN0EhkKB3Byb2plY3QYASABKAlCCLpIBXIDsAEBEhsKBm1lbWJlchgCIAEoCUILukgIcgaQtK6xAgESNgoEcm9sZRgDIAEoDjIeLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RSb2xlQgi6SAWCAQIQASJTCh9Qcm9qZWN0U2VydmljZUFkZE1lbWJlclJlc3BvbnNlEjAKBm1lbWJlchgBIAEoCzIgLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RNZW1iZXIiWwohUHJvamVjdFNlcnZpY2VSZW1vdmVNZW1iZXJSZXF1ZXN0EhkKB3Byb2plY3QYASABKAlCCLpIBXIDsAEBEhsKBm1lbWJlchgCIAEoCUILukgIcgaQtK6xAgEiVgoiUHJvamVjdFNlcnZpY2VSZW1vdmVNZW1iZXJSZXNwb25zZRIwCgZtZW1iZXIYASABKAsyIC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0TWVtYmVyMpAECg5Qcm9qZWN0U2VydmljZRJ4CgZDcmVhdGUSMC5tZXRhbHN0YWNrLmFkbWluLnYyLlByb2plY3RTZXJ2aWNlQ3JlYXRlUmVxdWVzdBoxLm1ldGFsc3RhY2suYWRtaW4udjIuUHJvamVjdFNlcnZpY2VDcmVhdGVSZXNwb25zZSIJ0vMYAQHg8xgBEnMKBExpc3QSLi5tZXRhbHN0YWNrLmFkbWluLnYyLlByb2plY3RTZXJ2aWNlTGlzdFJlcXVlc3QaLy5tZXRhbHN0YWNrLmFkbWluLnYyLlByb2plY3RTZXJ2aWNlTGlzdFJlc3BvbnNlIgrS8xgCAQLg8xgCEoEBCglBZGRNZW1iZXISMy5tZXRhbHN0YWNrLmFkbWluLnYyLlByb2plY3RTZXJ2aWNlQWRkTWVtYmVyUmVxdWVzdBo0Lm1ldGFsc3RhY2suYWRtaW4udjIuUHJvamVjdFNlcnZpY2VBZGRNZW1iZXJSZXNwb25zZSIJ0vMYAQHg8xgBEooBCgxSZW1vdmVNZW1iZXISNi5tZXRhbHN0YWNrLmFkbWluLnYyLlByb2plY3RTZXJ2aWNlUmVtb3ZlTWVtYmVyUmVxdWVzdBo3Lm1ldGFsc3RhY2suYWRtaW4udjIuUHJvamVjdFNlcnZpY2VSZW1vdmVNZW1iZXJSZXNwb25zZSIJ0vMYAQHg8xgBQtABChdjb20ubWV0YWxzdGFjay5hZG1pbi52MkIMUHJvamVjdFByb3RvUAFaOWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYWRtaW4vdjI7YWRtaW52MqICA01BWKoCE01ldGFsc3RhY2suQWRtaW4uVjLKAhNNZXRhbHN0YWNrXEFkbWluXFYy4gIfTWV0YWxzdGFja1xBZG1pblxWMlxHUEJNZXRhZGF0YeoCFU1ldGFsc3RhY2s6OkFkbWluOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules, file_metalstack_api_v2_project, file_metalstack_api_v2_project_member]);
/**
* ProjectServiceListRequest is the request payload for listing projects.
@@ -57,12 +62,204 @@ export type ProjectServiceListResponse = Message<"metalstack.admin.v2.ProjectSer
export const ProjectServiceListResponseSchema: GenMessage = /*@__PURE__*/
messageDesc(file_metalstack_admin_v2_project, 1);
+/**
+ * ProjectServiceCreateRequest is the request payload to Create a project.
+ *
+ * @generated from message metalstack.admin.v2.ProjectServiceCreateRequest
+ */
+export type ProjectServiceCreateRequest = Message<"metalstack.admin.v2.ProjectServiceCreateRequest"> & {
+ /**
+ * Login is the tenant of this project.
+ *
+ * @generated from field: string login = 1;
+ */
+ login: string;
+
+ /**
+ * Name of this project, unique per tenant.
+ *
+ * @generated from field: string name = 2;
+ */
+ name: string;
+
+ /**
+ * Description of this project.
+ *
+ * @generated from field: string description = 3;
+ */
+ description: string;
+
+ /**
+ * Avatar URL of the project.
+ *
+ * @generated from field: optional string avatar_url = 4;
+ */
+ avatarUrl?: string | undefined;
+
+ /**
+ * Labels on the project.
+ *
+ * @generated from field: metalstack.api.v2.Labels labels = 5;
+ */
+ labels?: Labels | undefined;
+
+ /**
+ * Project is the uuid of the project.
+ *
+ * @generated from field: optional string project = 6;
+ */
+ project?: string | undefined;
+};
+
+/**
+ * Describes the message metalstack.admin.v2.ProjectServiceCreateRequest.
+ * Use `create(ProjectServiceCreateRequestSchema)` to create a new message.
+ */
+export const ProjectServiceCreateRequestSchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_admin_v2_project, 2);
+
+/**
+ * ProjectServiceCreateResponse is the response payload for creating a project.
+ *
+ * @generated from message metalstack.admin.v2.ProjectServiceCreateResponse
+ */
+export type ProjectServiceCreateResponse = Message<"metalstack.admin.v2.ProjectServiceCreateResponse"> & {
+ /**
+ * Project contains the created project.
+ *
+ * @generated from field: metalstack.api.v2.Project project = 1;
+ */
+ project?: Project | undefined;
+};
+
+/**
+ * Describes the message metalstack.admin.v2.ProjectServiceCreateResponse.
+ * Use `create(ProjectServiceCreateResponseSchema)` to create a new message.
+ */
+export const ProjectServiceCreateResponseSchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_admin_v2_project, 3);
+
+/**
+ * ProjectServiceAddMemberRequest is the request payload for adding a member to a tenant.
+ *
+ * @generated from message metalstack.admin.v2.ProjectServiceAddMemberRequest
+ */
+export type ProjectServiceAddMemberRequest = Message<"metalstack.admin.v2.ProjectServiceAddMemberRequest"> & {
+ /**
+ * Project is the uuid of the project.
+ *
+ * @generated from field: string project = 1;
+ */
+ project: string;
+
+ /**
+ * Login of the member to add.
+ *
+ * @generated from field: string member = 2;
+ */
+ member: string;
+
+ /**
+ * Role to assign to the new member.
+ *
+ * @generated from field: metalstack.api.v2.ProjectRole role = 3;
+ */
+ role: ProjectRole;
+};
+
+/**
+ * Describes the message metalstack.admin.v2.ProjectServiceAddMemberRequest.
+ * Use `create(ProjectServiceAddMemberRequestSchema)` to create a new message.
+ */
+export const ProjectServiceAddMemberRequestSchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_admin_v2_project, 4);
+
+/**
+ * ProjectServiceAddMemberResponse is the response payload for the add member request.
+ *
+ * @generated from message metalstack.admin.v2.ProjectServiceAddMemberResponse
+ */
+export type ProjectServiceAddMemberResponse = Message<"metalstack.admin.v2.ProjectServiceAddMemberResponse"> & {
+ /**
+ * Member is the added project member.
+ *
+ * @generated from field: metalstack.api.v2.ProjectMember member = 1;
+ */
+ member?: ProjectMember | undefined;
+};
+
+/**
+ * Describes the message metalstack.admin.v2.ProjectServiceAddMemberResponse.
+ * Use `create(ProjectServiceAddMemberResponseSchema)` to create a new message.
+ */
+export const ProjectServiceAddMemberResponseSchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_admin_v2_project, 5);
+
+/**
+ * ProjectServiceRemoveMemberRequest is the request payload for removing a member from a project.
+ *
+ * @generated from message metalstack.admin.v2.ProjectServiceRemoveMemberRequest
+ */
+export type ProjectServiceRemoveMemberRequest = Message<"metalstack.admin.v2.ProjectServiceRemoveMemberRequest"> & {
+ /**
+ * Project is the uuid of the project.
+ *
+ * @generated from field: string project = 1;
+ */
+ project: string;
+
+ /**
+ * Login of the member to remove.
+ *
+ * @generated from field: string member = 2;
+ */
+ member: string;
+};
+
+/**
+ * Describes the message metalstack.admin.v2.ProjectServiceRemoveMemberRequest.
+ * Use `create(ProjectServiceRemoveMemberRequestSchema)` to create a new message.
+ */
+export const ProjectServiceRemoveMemberRequestSchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_admin_v2_project, 6);
+
+/**
+ * ProjectServiceRemoveMemberResponse is the response payload for the remove member request.
+ *
+ * @generated from message metalstack.admin.v2.ProjectServiceRemoveMemberResponse
+ */
+export type ProjectServiceRemoveMemberResponse = Message<"metalstack.admin.v2.ProjectServiceRemoveMemberResponse"> & {
+ /**
+ * Member is the removed project member.
+ *
+ * @generated from field: metalstack.api.v2.ProjectMember member = 1;
+ */
+ member?: ProjectMember | undefined;
+};
+
+/**
+ * Describes the message metalstack.admin.v2.ProjectServiceRemoveMemberResponse.
+ * Use `create(ProjectServiceRemoveMemberResponseSchema)` to create a new message.
+ */
+export const ProjectServiceRemoveMemberResponseSchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_admin_v2_project, 7);
+
/**
* ProjectService provides project management operations.
*
* @generated from service metalstack.admin.v2.ProjectService
*/
export const ProjectService: GenService<{
+ /**
+ * Creates a new project.
+ *
+ * @generated from rpc metalstack.admin.v2.ProjectService.Create
+ */
+ create: {
+ methodKind: "unary";
+ input: typeof ProjectServiceCreateRequestSchema;
+ output: typeof ProjectServiceCreateResponseSchema;
+ },
/**
* Returns the list of projects matching the filter criteria.
*
@@ -73,6 +270,26 @@ export const ProjectService: GenService<{
input: typeof ProjectServiceListRequestSchema;
output: typeof ProjectServiceListResponseSchema;
},
+ /**
+ * Add a member to a project.
+ *
+ * @generated from rpc metalstack.admin.v2.ProjectService.AddMember
+ */
+ addMember: {
+ methodKind: "unary";
+ input: typeof ProjectServiceAddMemberRequestSchema;
+ output: typeof ProjectServiceAddMemberResponseSchema;
+ },
+ /**
+ * RemoveMember removes a member from a project.
+ *
+ * @generated from rpc metalstack.admin.v2.ProjectService.RemoveMember
+ */
+ removeMember: {
+ methodKind: "unary";
+ input: typeof ProjectServiceRemoveMemberRequestSchema;
+ output: typeof ProjectServiceRemoveMemberResponseSchema;
+ },
}> = /*@__PURE__*/
serviceDesc(file_metalstack_admin_v2_project, 0);
diff --git a/js/metalstack/admin/v2/tenant_pb.d.ts b/js/metalstack/admin/v2/tenant_pb.d.ts
index e6eefd20..109de883 100644
--- a/js/metalstack/admin/v2/tenant_pb.d.ts
+++ b/js/metalstack/admin/v2/tenant_pb.d.ts
@@ -1,6 +1,7 @@
import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import type { Labels, TenantRole } from "../../api/v2/common_pb";
-import type { Tenant, TenantMember, TenantQuery } from "../../api/v2/tenant_pb";
+import type { Tenant, TenantQuery } from "../../api/v2/tenant_pb";
+import type { TenantMember } from "../../api/v2/tenant_member_pb";
import type { Message } from "@bufbuild/protobuf";
/**
* Describes the file metalstack/admin/v2/tenant.proto.
@@ -42,6 +43,12 @@ export type TenantServiceCreateRequest = Message<"metalstack.admin.v2.TenantServ
* @generated from field: metalstack.api.v2.Labels labels = 5;
*/
labels?: Labels | undefined;
+ /**
+ * Login of the tenant.
+ *
+ * @generated from field: optional string login = 6;
+ */
+ login?: string | undefined;
};
/**
* Describes the message metalstack.admin.v2.TenantServiceCreateRequest.
@@ -145,11 +152,11 @@ export declare const TenantServiceAddMemberRequestSchema: GenMessage & {
/**
- * TenantMember is the added tenant member.
+ * Member is the added tenant member.
*
- * @generated from field: metalstack.api.v2.TenantMember tenant_member = 1;
+ * @generated from field: metalstack.api.v2.TenantMember member = 1;
*/
- tenantMember?: TenantMember | undefined;
+ member?: TenantMember | undefined;
};
/**
* Describes the message metalstack.admin.v2.TenantServiceAddMemberResponse.
@@ -187,11 +194,11 @@ export declare const TenantServiceRemoveMemberRequestSchema: GenMessage & {
/**
- * TenantMember is the removed tenant member.
+ * Member is the removed tenant member.
*
- * @generated from field: metalstack.api.v2.TenantMember tenant_member = 1;
+ * @generated from field: metalstack.api.v2.TenantMember member = 1;
*/
- tenantMember?: TenantMember | undefined;
+ member?: TenantMember | undefined;
};
/**
* Describes the message metalstack.admin.v2.TenantServiceRemoveMemberResponse.
diff --git a/js/metalstack/admin/v2/tenant_pb.js b/js/metalstack/admin/v2/tenant_pb.js
index 2590df81..628af6d4 100644
--- a/js/metalstack/admin/v2/tenant_pb.js
+++ b/js/metalstack/admin/v2/tenant_pb.js
@@ -6,10 +6,11 @@ import { file_buf_validate_validate } from "../../../buf/validate/validate_pb";
import { file_metalstack_api_v2_common } from "../../api/v2/common_pb";
import { file_metalstack_api_v2_predefined_rules } from "../../api/v2/predefined_rules_pb";
import { file_metalstack_api_v2_tenant } from "../../api/v2/tenant_pb";
+import { file_metalstack_api_v2_tenant_member } from "../../api/v2/tenant_member_pb";
/**
* Describes the file metalstack/admin/v2/tenant.proto.
*/
-export const file_metalstack_admin_v2_tenant = /*@__PURE__*/ fileDesc("CiBtZXRhbHN0YWNrL2FkbWluL3YyL3RlbmFudC5wcm90bxITbWV0YWxzdGFjay5hZG1pbi52MiL1AQoaVGVuYW50U2VydmljZUNyZWF0ZVJlcXVlc3QSGQoEbmFtZRgBIAEoCUILukgIcgaQtK6xAgESJQoLZGVzY3JpcHRpb24YAiABKAlCC7pICHIGyLOusQIBSACIAQESGwoFZW1haWwYAyABKAlCB7pIBHICYAFIAYgBARIkCgphdmF0YXJfdXJsGAQgASgJQgu6SAhyBuCzrrECAUgCiAEBEikKBmxhYmVscxgFIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0IOCgxfZGVzY3JpcHRpb25CCAoGX2VtYWlsQg0KC19hdmF0YXJfdXJsIkgKG1RlbmFudFNlcnZpY2VDcmVhdGVSZXNwb25zZRIpCgZ0ZW5hbnQYASABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnQiSQoYVGVuYW50U2VydmljZUxpc3RSZXF1ZXN0Ei0KBXF1ZXJ5GAEgASgLMh4ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50UXVlcnkibQoZVGVuYW50U2VydmljZUxpc3RSZXNwb25zZRIqCgd0ZW5hbnRzGAEgAygLMhkubWV0YWxzdGFjay5hcGkudjIuVGVuYW50EhYKCW5leHRfcGFnZRgCIAEoBEgAiAEBQgwKCl9uZXh0X3BhZ2UikAEKHVRlbmFudFNlcnZpY2VBZGRNZW1iZXJSZXF1ZXN0EhsKBnRlbmFudBgBIAEoCUILukgIcgaQtK6xAgESGwoGbWVtYmVyGAIgASgJQgu6SAhyBpC0rrECARI1CgRyb2xlGAMgASgOMh0ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50Um9sZUIIukgFggECEAEiWAoeVGVuYW50U2VydmljZUFkZE1lbWJlclJlc3BvbnNlEjYKDXRlbmFudF9tZW1iZXIYASABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRNZW1iZXIiXAogVGVuYW50U2VydmljZVJlbW92ZU1lbWJlclJlcXVlc3QSGwoGdGVuYW50GAEgASgJQgu6SAhyBpC0rrECARIbCgZtZW1iZXIYAiABKAlCC7pICHIGkLSusQIBIlsKIVRlbmFudFNlcnZpY2VSZW1vdmVNZW1iZXJSZXNwb25zZRI2Cg10ZW5hbnRfbWVtYmVyGAEgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50TWVtYmVyMoYECg1UZW5hbnRTZXJ2aWNlEnYKBkNyZWF0ZRIvLm1ldGFsc3RhY2suYWRtaW4udjIuVGVuYW50U2VydmljZUNyZWF0ZVJlcXVlc3QaMC5tZXRhbHN0YWNrLmFkbWluLnYyLlRlbmFudFNlcnZpY2VDcmVhdGVSZXNwb25zZSIJ0vMYAQHg8xgBEnEKBExpc3QSLS5tZXRhbHN0YWNrLmFkbWluLnYyLlRlbmFudFNlcnZpY2VMaXN0UmVxdWVzdBouLm1ldGFsc3RhY2suYWRtaW4udjIuVGVuYW50U2VydmljZUxpc3RSZXNwb25zZSIK0vMYAgEC4PMYARJ/CglBZGRNZW1iZXISMi5tZXRhbHN0YWNrLmFkbWluLnYyLlRlbmFudFNlcnZpY2VBZGRNZW1iZXJSZXF1ZXN0GjMubWV0YWxzdGFjay5hZG1pbi52Mi5UZW5hbnRTZXJ2aWNlQWRkTWVtYmVyUmVzcG9uc2UiCdLzGAEB4PMYARKIAQoMUmVtb3ZlTWVtYmVyEjUubWV0YWxzdGFjay5hZG1pbi52Mi5UZW5hbnRTZXJ2aWNlUmVtb3ZlTWVtYmVyUmVxdWVzdBo2Lm1ldGFsc3RhY2suYWRtaW4udjIuVGVuYW50U2VydmljZVJlbW92ZU1lbWJlclJlc3BvbnNlIgnS8xgBAeDzGAFCzwEKF2NvbS5tZXRhbHN0YWNrLmFkbWluLnYyQgtUZW5hbnRQcm90b1ABWjlnaXRodWIuY29tL21ldGFsLXN0YWNrL2FwaS9nby9tZXRhbHN0YWNrL2FkbWluL3YyO2FkbWludjKiAgNNQViqAhNNZXRhbHN0YWNrLkFkbWluLlYyygITTWV0YWxzdGFja1xBZG1pblxWMuICH01ldGFsc3RhY2tcQWRtaW5cVjJcR1BCTWV0YWRhdGHqAhVNZXRhbHN0YWNrOjpBZG1pbjo6VjJiBnByb3RvMw", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules, file_metalstack_api_v2_tenant]);
+export const file_metalstack_admin_v2_tenant = /*@__PURE__*/ fileDesc("CiBtZXRhbHN0YWNrL2FkbWluL3YyL3RlbmFudC5wcm90bxITbWV0YWxzdGFjay5hZG1pbi52MiKgAgoaVGVuYW50U2VydmljZUNyZWF0ZVJlcXVlc3QSGQoEbmFtZRgBIAEoCUILukgIcgbAs66xAgESJQoLZGVzY3JpcHRpb24YAiABKAlCC7pICHIGyLOusQIBSACIAQESGwoFZW1haWwYAyABKAlCB7pIBHICYAFIAYgBARIkCgphdmF0YXJfdXJsGAQgASgJQgu6SAhyBuCzrrECAUgCiAEBEikKBmxhYmVscxgFIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVscxIfCgVsb2dpbhgGIAEoCUILukgIcgaQtK6xAgFIA4gBAUIOCgxfZGVzY3JpcHRpb25CCAoGX2VtYWlsQg0KC19hdmF0YXJfdXJsQggKBl9sb2dpbiJIChtUZW5hbnRTZXJ2aWNlQ3JlYXRlUmVzcG9uc2USKQoGdGVuYW50GAEgASgLMhkubWV0YWxzdGFjay5hcGkudjIuVGVuYW50IkkKGFRlbmFudFNlcnZpY2VMaXN0UmVxdWVzdBItCgVxdWVyeRgBIAEoCzIeLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFF1ZXJ5Im0KGVRlbmFudFNlcnZpY2VMaXN0UmVzcG9uc2USKgoHdGVuYW50cxgBIAMoCzIZLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudBIWCgluZXh0X3BhZ2UYAiABKARIAIgBAUIMCgpfbmV4dF9wYWdlIpABCh1UZW5hbnRTZXJ2aWNlQWRkTWVtYmVyUmVxdWVzdBIbCgZ0ZW5hbnQYASABKAlCC7pICHIGkLSusQIBEhsKBm1lbWJlchgCIAEoCUILukgIcgaQtK6xAgESNQoEcm9sZRgDIAEoDjIdLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFJvbGVCCLpIBYIBAhABIlEKHlRlbmFudFNlcnZpY2VBZGRNZW1iZXJSZXNwb25zZRIvCgZtZW1iZXIYASABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRNZW1iZXIiXAogVGVuYW50U2VydmljZVJlbW92ZU1lbWJlclJlcXVlc3QSGwoGdGVuYW50GAEgASgJQgu6SAhyBpC0rrECARIbCgZtZW1iZXIYAiABKAlCC7pICHIGkLSusQIBIlQKIVRlbmFudFNlcnZpY2VSZW1vdmVNZW1iZXJSZXNwb25zZRIvCgZtZW1iZXIYASABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRNZW1iZXIyhgQKDVRlbmFudFNlcnZpY2USdgoGQ3JlYXRlEi8ubWV0YWxzdGFjay5hZG1pbi52Mi5UZW5hbnRTZXJ2aWNlQ3JlYXRlUmVxdWVzdBowLm1ldGFsc3RhY2suYWRtaW4udjIuVGVuYW50U2VydmljZUNyZWF0ZVJlc3BvbnNlIgnS8xgBAeDzGAEScQoETGlzdBItLm1ldGFsc3RhY2suYWRtaW4udjIuVGVuYW50U2VydmljZUxpc3RSZXF1ZXN0Gi4ubWV0YWxzdGFjay5hZG1pbi52Mi5UZW5hbnRTZXJ2aWNlTGlzdFJlc3BvbnNlIgrS8xgCAQLg8xgBEn8KCUFkZE1lbWJlchIyLm1ldGFsc3RhY2suYWRtaW4udjIuVGVuYW50U2VydmljZUFkZE1lbWJlclJlcXVlc3QaMy5tZXRhbHN0YWNrLmFkbWluLnYyLlRlbmFudFNlcnZpY2VBZGRNZW1iZXJSZXNwb25zZSIJ0vMYAQHg8xgBEogBCgxSZW1vdmVNZW1iZXISNS5tZXRhbHN0YWNrLmFkbWluLnYyLlRlbmFudFNlcnZpY2VSZW1vdmVNZW1iZXJSZXF1ZXN0GjYubWV0YWxzdGFjay5hZG1pbi52Mi5UZW5hbnRTZXJ2aWNlUmVtb3ZlTWVtYmVyUmVzcG9uc2UiCdLzGAEB4PMYAULPAQoXY29tLm1ldGFsc3RhY2suYWRtaW4udjJCC1RlbmFudFByb3RvUAFaOWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYWRtaW4vdjI7YWRtaW52MqICA01BWKoCE01ldGFsc3RhY2suQWRtaW4uVjLKAhNNZXRhbHN0YWNrXEFkbWluXFYy4gIfTWV0YWxzdGFja1xBZG1pblxWMlxHUEJNZXRhZGF0YeoCFU1ldGFsc3RhY2s6OkFkbWluOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules, file_metalstack_api_v2_tenant, file_metalstack_api_v2_tenant_member]);
/**
* Describes the message metalstack.admin.v2.TenantServiceCreateRequest.
* Use `create(TenantServiceCreateRequestSchema)` to create a new message.
diff --git a/js/metalstack/admin/v2/tenant_pb.ts b/js/metalstack/admin/v2/tenant_pb.ts
index ce08a058..dab8da90 100644
--- a/js/metalstack/admin/v2/tenant_pb.ts
+++ b/js/metalstack/admin/v2/tenant_pb.ts
@@ -8,15 +8,17 @@ import { file_buf_validate_validate } from "../../../buf/validate/validate_pb";
import type { Labels, TenantRole } from "../../api/v2/common_pb";
import { file_metalstack_api_v2_common } from "../../api/v2/common_pb";
import { file_metalstack_api_v2_predefined_rules } from "../../api/v2/predefined_rules_pb";
-import type { Tenant, TenantMember, TenantQuery } from "../../api/v2/tenant_pb";
+import type { Tenant, TenantQuery } from "../../api/v2/tenant_pb";
import { file_metalstack_api_v2_tenant } from "../../api/v2/tenant_pb";
+import type { TenantMember } from "../../api/v2/tenant_member_pb";
+import { file_metalstack_api_v2_tenant_member } from "../../api/v2/tenant_member_pb";
import type { Message } from "@bufbuild/protobuf";
/**
* Describes the file metalstack/admin/v2/tenant.proto.
*/
export const file_metalstack_admin_v2_tenant: GenFile = /*@__PURE__*/
- fileDesc("CiBtZXRhbHN0YWNrL2FkbWluL3YyL3RlbmFudC5wcm90bxITbWV0YWxzdGFjay5hZG1pbi52MiL1AQoaVGVuYW50U2VydmljZUNyZWF0ZVJlcXVlc3QSGQoEbmFtZRgBIAEoCUILukgIcgaQtK6xAgESJQoLZGVzY3JpcHRpb24YAiABKAlCC7pICHIGyLOusQIBSACIAQESGwoFZW1haWwYAyABKAlCB7pIBHICYAFIAYgBARIkCgphdmF0YXJfdXJsGAQgASgJQgu6SAhyBuCzrrECAUgCiAEBEikKBmxhYmVscxgFIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0IOCgxfZGVzY3JpcHRpb25CCAoGX2VtYWlsQg0KC19hdmF0YXJfdXJsIkgKG1RlbmFudFNlcnZpY2VDcmVhdGVSZXNwb25zZRIpCgZ0ZW5hbnQYASABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnQiSQoYVGVuYW50U2VydmljZUxpc3RSZXF1ZXN0Ei0KBXF1ZXJ5GAEgASgLMh4ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50UXVlcnkibQoZVGVuYW50U2VydmljZUxpc3RSZXNwb25zZRIqCgd0ZW5hbnRzGAEgAygLMhkubWV0YWxzdGFjay5hcGkudjIuVGVuYW50EhYKCW5leHRfcGFnZRgCIAEoBEgAiAEBQgwKCl9uZXh0X3BhZ2UikAEKHVRlbmFudFNlcnZpY2VBZGRNZW1iZXJSZXF1ZXN0EhsKBnRlbmFudBgBIAEoCUILukgIcgaQtK6xAgESGwoGbWVtYmVyGAIgASgJQgu6SAhyBpC0rrECARI1CgRyb2xlGAMgASgOMh0ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50Um9sZUIIukgFggECEAEiWAoeVGVuYW50U2VydmljZUFkZE1lbWJlclJlc3BvbnNlEjYKDXRlbmFudF9tZW1iZXIYASABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRNZW1iZXIiXAogVGVuYW50U2VydmljZVJlbW92ZU1lbWJlclJlcXVlc3QSGwoGdGVuYW50GAEgASgJQgu6SAhyBpC0rrECARIbCgZtZW1iZXIYAiABKAlCC7pICHIGkLSusQIBIlsKIVRlbmFudFNlcnZpY2VSZW1vdmVNZW1iZXJSZXNwb25zZRI2Cg10ZW5hbnRfbWVtYmVyGAEgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50TWVtYmVyMoYECg1UZW5hbnRTZXJ2aWNlEnYKBkNyZWF0ZRIvLm1ldGFsc3RhY2suYWRtaW4udjIuVGVuYW50U2VydmljZUNyZWF0ZVJlcXVlc3QaMC5tZXRhbHN0YWNrLmFkbWluLnYyLlRlbmFudFNlcnZpY2VDcmVhdGVSZXNwb25zZSIJ0vMYAQHg8xgBEnEKBExpc3QSLS5tZXRhbHN0YWNrLmFkbWluLnYyLlRlbmFudFNlcnZpY2VMaXN0UmVxdWVzdBouLm1ldGFsc3RhY2suYWRtaW4udjIuVGVuYW50U2VydmljZUxpc3RSZXNwb25zZSIK0vMYAgEC4PMYARJ/CglBZGRNZW1iZXISMi5tZXRhbHN0YWNrLmFkbWluLnYyLlRlbmFudFNlcnZpY2VBZGRNZW1iZXJSZXF1ZXN0GjMubWV0YWxzdGFjay5hZG1pbi52Mi5UZW5hbnRTZXJ2aWNlQWRkTWVtYmVyUmVzcG9uc2UiCdLzGAEB4PMYARKIAQoMUmVtb3ZlTWVtYmVyEjUubWV0YWxzdGFjay5hZG1pbi52Mi5UZW5hbnRTZXJ2aWNlUmVtb3ZlTWVtYmVyUmVxdWVzdBo2Lm1ldGFsc3RhY2suYWRtaW4udjIuVGVuYW50U2VydmljZVJlbW92ZU1lbWJlclJlc3BvbnNlIgnS8xgBAeDzGAFCzwEKF2NvbS5tZXRhbHN0YWNrLmFkbWluLnYyQgtUZW5hbnRQcm90b1ABWjlnaXRodWIuY29tL21ldGFsLXN0YWNrL2FwaS9nby9tZXRhbHN0YWNrL2FkbWluL3YyO2FkbWludjKiAgNNQViqAhNNZXRhbHN0YWNrLkFkbWluLlYyygITTWV0YWxzdGFja1xBZG1pblxWMuICH01ldGFsc3RhY2tcQWRtaW5cVjJcR1BCTWV0YWRhdGHqAhVNZXRhbHN0YWNrOjpBZG1pbjo6VjJiBnByb3RvMw", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules, file_metalstack_api_v2_tenant]);
+ fileDesc("CiBtZXRhbHN0YWNrL2FkbWluL3YyL3RlbmFudC5wcm90bxITbWV0YWxzdGFjay5hZG1pbi52MiKgAgoaVGVuYW50U2VydmljZUNyZWF0ZVJlcXVlc3QSGQoEbmFtZRgBIAEoCUILukgIcgbAs66xAgESJQoLZGVzY3JpcHRpb24YAiABKAlCC7pICHIGyLOusQIBSACIAQESGwoFZW1haWwYAyABKAlCB7pIBHICYAFIAYgBARIkCgphdmF0YXJfdXJsGAQgASgJQgu6SAhyBuCzrrECAUgCiAEBEikKBmxhYmVscxgFIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVscxIfCgVsb2dpbhgGIAEoCUILukgIcgaQtK6xAgFIA4gBAUIOCgxfZGVzY3JpcHRpb25CCAoGX2VtYWlsQg0KC19hdmF0YXJfdXJsQggKBl9sb2dpbiJIChtUZW5hbnRTZXJ2aWNlQ3JlYXRlUmVzcG9uc2USKQoGdGVuYW50GAEgASgLMhkubWV0YWxzdGFjay5hcGkudjIuVGVuYW50IkkKGFRlbmFudFNlcnZpY2VMaXN0UmVxdWVzdBItCgVxdWVyeRgBIAEoCzIeLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFF1ZXJ5Im0KGVRlbmFudFNlcnZpY2VMaXN0UmVzcG9uc2USKgoHdGVuYW50cxgBIAMoCzIZLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudBIWCgluZXh0X3BhZ2UYAiABKARIAIgBAUIMCgpfbmV4dF9wYWdlIpABCh1UZW5hbnRTZXJ2aWNlQWRkTWVtYmVyUmVxdWVzdBIbCgZ0ZW5hbnQYASABKAlCC7pICHIGkLSusQIBEhsKBm1lbWJlchgCIAEoCUILukgIcgaQtK6xAgESNQoEcm9sZRgDIAEoDjIdLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFJvbGVCCLpIBYIBAhABIlEKHlRlbmFudFNlcnZpY2VBZGRNZW1iZXJSZXNwb25zZRIvCgZtZW1iZXIYASABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRNZW1iZXIiXAogVGVuYW50U2VydmljZVJlbW92ZU1lbWJlclJlcXVlc3QSGwoGdGVuYW50GAEgASgJQgu6SAhyBpC0rrECARIbCgZtZW1iZXIYAiABKAlCC7pICHIGkLSusQIBIlQKIVRlbmFudFNlcnZpY2VSZW1vdmVNZW1iZXJSZXNwb25zZRIvCgZtZW1iZXIYASABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRNZW1iZXIyhgQKDVRlbmFudFNlcnZpY2USdgoGQ3JlYXRlEi8ubWV0YWxzdGFjay5hZG1pbi52Mi5UZW5hbnRTZXJ2aWNlQ3JlYXRlUmVxdWVzdBowLm1ldGFsc3RhY2suYWRtaW4udjIuVGVuYW50U2VydmljZUNyZWF0ZVJlc3BvbnNlIgnS8xgBAeDzGAEScQoETGlzdBItLm1ldGFsc3RhY2suYWRtaW4udjIuVGVuYW50U2VydmljZUxpc3RSZXF1ZXN0Gi4ubWV0YWxzdGFjay5hZG1pbi52Mi5UZW5hbnRTZXJ2aWNlTGlzdFJlc3BvbnNlIgrS8xgCAQLg8xgBEn8KCUFkZE1lbWJlchIyLm1ldGFsc3RhY2suYWRtaW4udjIuVGVuYW50U2VydmljZUFkZE1lbWJlclJlcXVlc3QaMy5tZXRhbHN0YWNrLmFkbWluLnYyLlRlbmFudFNlcnZpY2VBZGRNZW1iZXJSZXNwb25zZSIJ0vMYAQHg8xgBEogBCgxSZW1vdmVNZW1iZXISNS5tZXRhbHN0YWNrLmFkbWluLnYyLlRlbmFudFNlcnZpY2VSZW1vdmVNZW1iZXJSZXF1ZXN0GjYubWV0YWxzdGFjay5hZG1pbi52Mi5UZW5hbnRTZXJ2aWNlUmVtb3ZlTWVtYmVyUmVzcG9uc2UiCdLzGAEB4PMYAULPAQoXY29tLm1ldGFsc3RhY2suYWRtaW4udjJCC1RlbmFudFByb3RvUAFaOWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYWRtaW4vdjI7YWRtaW52MqICA01BWKoCE01ldGFsc3RhY2suQWRtaW4uVjLKAhNNZXRhbHN0YWNrXEFkbWluXFYy4gIfTWV0YWxzdGFja1xBZG1pblxWMlxHUEJNZXRhZGF0YeoCFU1ldGFsc3RhY2s6OkFkbWluOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules, file_metalstack_api_v2_tenant, file_metalstack_api_v2_tenant_member]);
/**
* TenantServiceCreateRequest is the request payload for creating a tenant.
@@ -58,6 +60,13 @@ export type TenantServiceCreateRequest = Message<"metalstack.admin.v2.TenantServ
* @generated from field: metalstack.api.v2.Labels labels = 5;
*/
labels?: Labels | undefined;
+
+ /**
+ * Login of the tenant.
+ *
+ * @generated from field: optional string login = 6;
+ */
+ login?: string | undefined;
};
/**
@@ -179,11 +188,11 @@ export const TenantServiceAddMemberRequestSchema: GenMessage & {
/**
- * TenantMember is the added tenant member.
+ * Member is the added tenant member.
*
- * @generated from field: metalstack.api.v2.TenantMember tenant_member = 1;
+ * @generated from field: metalstack.api.v2.TenantMember member = 1;
*/
- tenantMember?: TenantMember | undefined;
+ member?: TenantMember | undefined;
};
/**
@@ -228,11 +237,11 @@ export const TenantServiceRemoveMemberRequestSchema: GenMessage & {
/**
- * TenantMember is the removed tenant member.
+ * Member is the removed tenant member.
*
- * @generated from field: metalstack.api.v2.TenantMember tenant_member = 1;
+ * @generated from field: metalstack.api.v2.TenantMember member = 1;
*/
- tenantMember?: TenantMember | undefined;
+ member?: TenantMember | undefined;
};
/**
diff --git a/js/metalstack/api/v2/project_member_pb.d.ts b/js/metalstack/api/v2/project_member_pb.d.ts
new file mode 100644
index 00000000..09776a91
--- /dev/null
+++ b/js/metalstack/api/v2/project_member_pb.d.ts
@@ -0,0 +1,407 @@
+import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
+import type { Timestamp } from "@bufbuild/protobuf/wkt";
+import type { Meta, ProjectRole, UpdateMeta } from "./common_pb";
+import type { Message } from "@bufbuild/protobuf";
+/**
+ * Describes the file metalstack/api/v2/project_member.proto.
+ */
+export declare const file_metalstack_api_v2_project_member: GenFile;
+/**
+ * ProjectMember defines a user that participates in a project.
+ *
+ * @generated from message metalstack.api.v2.ProjectMember
+ */
+export type ProjectMember = Message<"metalstack.api.v2.ProjectMember"> & {
+ /**
+ * Member is the user id of the member.
+ *
+ * @generated from field: string member = 1;
+ */
+ member: string;
+ /**
+ * Role is the role of the member.
+ *
+ * @generated from field: metalstack.api.v2.ProjectRole role = 2;
+ */
+ role: ProjectRole;
+ /**
+ * InheritedMembership indicates that this member has implicit permissions on the project through his membership within the tenant.
+ * This member does not have direct project membership but gains permissions on this project from the role he has in the tenant.
+ * Inherited memberships are not included in member lists for users with guest permission but only for direct tenant members.
+ *
+ * @generated from field: bool inherited_membership = 3;
+ */
+ inheritedMembership: boolean;
+ /**
+ * CreatedAt the date when the member was added to the project.
+ *
+ * @generated from field: google.protobuf.Timestamp created_at = 4;
+ */
+ createdAt?: Timestamp | undefined;
+ /**
+ * Meta for this project member.
+ *
+ * @generated from field: metalstack.api.v2.Meta meta = 5;
+ */
+ meta?: Meta | undefined;
+};
+/**
+ * Describes the message metalstack.api.v2.ProjectMember.
+ * Use `create(ProjectMemberSchema)` to create a new message.
+ */
+export declare const ProjectMemberSchema: GenMessage;
+/**
+ * ProjectQuery is used to search projects.
+ *
+ * @generated from message metalstack.api.v2.ProjectMemberQuery
+ */
+export type ProjectMemberQuery = Message<"metalstack.api.v2.ProjectMemberQuery"> & {
+ /**
+ * Member is the user id of the member.
+ *
+ * @generated from field: optional string member = 1;
+ */
+ member?: string | undefined;
+ /**
+ * Role is the role of the member.
+ *
+ * @generated from field: optional metalstack.api.v2.ProjectRole role = 2;
+ */
+ role?: ProjectRole | undefined;
+};
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberQuery.
+ * Use `create(ProjectMemberQuerySchema)` to create a new message.
+ */
+export declare const ProjectMemberQuerySchema: GenMessage;
+/**
+ * ProjectMemberServiceListRequest is the request payload to list all project members.
+ *
+ * @generated from message metalstack.api.v2.ProjectMemberServiceListRequest
+ */
+export type ProjectMemberServiceListRequest = Message<"metalstack.api.v2.ProjectMemberServiceListRequest"> & {
+ /**
+ * Project is the uuid of the project.
+ *
+ * @generated from field: string project = 1;
+ */
+ project: string;
+ /**
+ * Query for projects.
+ *
+ * @generated from field: metalstack.api.v2.ProjectMemberQuery query = 2;
+ */
+ query?: ProjectMemberQuery | undefined;
+};
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceListRequest.
+ * Use `create(ProjectMemberServiceListRequestSchema)` to create a new message.
+ */
+export declare const ProjectMemberServiceListRequestSchema: GenMessage;
+/**
+ * ProjectMemberServiceGetRequest is the request payload to get a project.
+ *
+ * @generated from message metalstack.api.v2.ProjectMemberServiceGetRequest
+ */
+export type ProjectMemberServiceGetRequest = Message<"metalstack.api.v2.ProjectMemberServiceGetRequest"> & {
+ /**
+ * Project is the uuid of the project.
+ *
+ * @generated from field: string project = 1;
+ */
+ project: string;
+ /**
+ * Member is the user id of the member.
+ *
+ * @generated from field: string member = 2;
+ */
+ member: string;
+};
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceGetRequest.
+ * Use `create(ProjectMemberServiceGetRequestSchema)` to create a new message.
+ */
+export declare const ProjectMemberServiceGetRequestSchema: GenMessage;
+/**
+ * ProjectMemberServiceCreateRequest is the request payload to Create a project.
+ *
+ * @generated from message metalstack.api.v2.ProjectMemberServiceCreateRequest
+ */
+export type ProjectMemberServiceCreateRequest = Message<"metalstack.api.v2.ProjectMemberServiceCreateRequest"> & {
+ /**
+ * Project is the uuid of the project.
+ *
+ * @generated from field: string project = 1;
+ */
+ project: string;
+ /**
+ * Login of the member to add.
+ *
+ * @generated from field: string member = 2;
+ */
+ member: string;
+ /**
+ * Role to assign to the new member.
+ *
+ * @generated from field: metalstack.api.v2.ProjectRole role = 3;
+ */
+ role: ProjectRole;
+};
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceCreateRequest.
+ * Use `create(ProjectMemberServiceCreateRequestSchema)` to create a new message.
+ */
+export declare const ProjectMemberServiceCreateRequestSchema: GenMessage;
+/**
+ * ProjectMemberServiceUpdateRequest is the request payload to update a project.
+ *
+ * @generated from message metalstack.api.v2.ProjectMemberServiceUpdateRequest
+ */
+export type ProjectMemberServiceUpdateRequest = Message<"metalstack.api.v2.ProjectMemberServiceUpdateRequest"> & {
+ /**
+ * Project is the uuid of the project.
+ *
+ * @generated from field: string project = 1;
+ */
+ project: string;
+ /**
+ * Member is the id of the member to remove from this project.
+ *
+ * @generated from field: string member = 2;
+ */
+ member: string;
+ /**
+ * Role is the role in this project the user will get after the update.
+ *
+ * @generated from field: metalstack.api.v2.ProjectRole role = 3;
+ */
+ role: ProjectRole;
+ /**
+ * UpdateMeta contains the timestamp and strategy to be used in this update request.
+ *
+ * @generated from field: metalstack.api.v2.UpdateMeta update_meta = 4;
+ */
+ updateMeta?: UpdateMeta | undefined;
+};
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceUpdateRequest.
+ * Use `create(ProjectMemberServiceUpdateRequestSchema)` to create a new message.
+ */
+export declare const ProjectMemberServiceUpdateRequestSchema: GenMessage;
+/**
+ * ProjectMemberServiceDeleteRequest is the request payload to delete a project.
+ *
+ * @generated from message metalstack.api.v2.ProjectMemberServiceDeleteRequest
+ */
+export type ProjectMemberServiceDeleteRequest = Message<"metalstack.api.v2.ProjectMemberServiceDeleteRequest"> & {
+ /**
+ * Project is the uuid of the project.
+ *
+ * @generated from field: string project = 1;
+ */
+ project: string;
+ /**
+ * Member is the id of the member to remove from this project.
+ *
+ * @generated from field: string member = 2;
+ */
+ member: string;
+};
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceDeleteRequest.
+ * Use `create(ProjectMemberServiceDeleteRequestSchema)` to create a new message.
+ */
+export declare const ProjectMemberServiceDeleteRequestSchema: GenMessage;
+/**
+ * ProjectMemberServiceListResponse is the response payload to list all project members.
+ *
+ * @generated from message metalstack.api.v2.ProjectMemberServiceListResponse
+ */
+export type ProjectMemberServiceListResponse = Message<"metalstack.api.v2.ProjectMemberServiceListResponse"> & {
+ /**
+ * Members is a list of project members.
+ *
+ * @generated from field: repeated metalstack.api.v2.ProjectMember members = 1;
+ */
+ members: ProjectMember[];
+};
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceListResponse.
+ * Use `create(ProjectMemberServiceListResponseSchema)` to create a new message.
+ */
+export declare const ProjectMemberServiceListResponseSchema: GenMessage;
+/**
+ * ProjectMemberServiceGetResponse is the response payload to get a projects.
+ *
+ * @generated from message metalstack.api.v2.ProjectMemberServiceGetResponse
+ */
+export type ProjectMemberServiceGetResponse = Message<"metalstack.api.v2.ProjectMemberServiceGetResponse"> & {
+ /**
+ * Member in this project, projects guests will only see direct project members and not implicit memberships from tenant permissions.
+ *
+ * @generated from field: repeated metalstack.api.v2.ProjectMember member = 1;
+ */
+ member: ProjectMember[];
+};
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceGetResponse.
+ * Use `create(ProjectMemberServiceGetResponseSchema)` to create a new message.
+ */
+export declare const ProjectMemberServiceGetResponseSchema: GenMessage;
+/**
+ * ProjectMemberServiceCreateResponse is the response payload to create a project member.
+ *
+ * @generated from message metalstack.api.v2.ProjectMemberServiceCreateResponse
+ */
+export type ProjectMemberServiceCreateResponse = Message<"metalstack.api.v2.ProjectMemberServiceCreateResponse"> & {
+ /**
+ * Member is the created project member
+ *
+ * @generated from field: metalstack.api.v2.ProjectMember member = 1;
+ */
+ member?: ProjectMember | undefined;
+};
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceCreateResponse.
+ * Use `create(ProjectMemberServiceCreateResponseSchema)` to create a new message.
+ */
+export declare const ProjectMemberServiceCreateResponseSchema: GenMessage;
+/**
+ * ProjectMemberServiceDeleteResponse is the response payload to delete a project member.
+ *
+ * @generated from message metalstack.api.v2.ProjectMemberServiceDeleteResponse
+ */
+export type ProjectMemberServiceDeleteResponse = Message<"metalstack.api.v2.ProjectMemberServiceDeleteResponse"> & {
+ /**
+ * Member is the deleted project member
+ *
+ * @generated from field: metalstack.api.v2.ProjectMember member = 1;
+ */
+ member?: ProjectMember | undefined;
+};
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceDeleteResponse.
+ * Use `create(ProjectMemberServiceDeleteResponseSchema)` to create a new message.
+ */
+export declare const ProjectMemberServiceDeleteResponseSchema: GenMessage;
+/**
+ * ProjectMemberServiceUpdateResponse is the response payload to update a project member.
+ *
+ * @generated from message metalstack.api.v2.ProjectMemberServiceUpdateResponse
+ */
+export type ProjectMemberServiceUpdateResponse = Message<"metalstack.api.v2.ProjectMemberServiceUpdateResponse"> & {
+ /**
+ * Member is the updated project member
+ *
+ * @generated from field: metalstack.api.v2.ProjectMember member = 1;
+ */
+ member?: ProjectMember | undefined;
+};
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceUpdateResponse.
+ * Use `create(ProjectMemberServiceUpdateResponseSchema)` to create a new message.
+ */
+export declare const ProjectMemberServiceUpdateResponseSchema: GenMessage;
+/**
+ * ProjectMemberServiceLeaveRequest is used to leave a project. This way a member is not required to ask a project owner to remove him.
+ *
+ * @generated from message metalstack.api.v2.ProjectMemberServiceLeaveRequest
+ */
+export type ProjectMemberServiceLeaveRequest = Message<"metalstack.api.v2.ProjectMemberServiceLeaveRequest"> & {
+ /**
+ * Project of the uuid of the project that the user wants to leave.
+ *
+ * @generated from field: string project = 1;
+ */
+ project: string;
+};
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceLeaveRequest.
+ * Use `create(ProjectMemberServiceLeaveRequestSchema)` to create a new message.
+ */
+export declare const ProjectMemberServiceLeaveRequestSchema: GenMessage;
+/**
+ * ProjectMemberServiceLeaveResponse is the response payload to a leave project request.
+ *
+ * @generated from message metalstack.api.v2.ProjectMemberServiceLeaveResponse
+ */
+export type ProjectMemberServiceLeaveResponse = Message<"metalstack.api.v2.ProjectMemberServiceLeaveResponse"> & {
+ /**
+ * Member is the member of this project.
+ *
+ * @generated from field: metalstack.api.v2.ProjectMember member = 1;
+ */
+ member?: ProjectMember | undefined;
+};
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceLeaveResponse.
+ * Use `create(ProjectMemberServiceLeaveResponseSchema)` to create a new message.
+ */
+export declare const ProjectMemberServiceLeaveResponseSchema: GenMessage;
+/**
+ * ProjectMemberService provides project management operations.
+ *
+ * @generated from service metalstack.api.v2.ProjectMemberService
+ */
+export declare const ProjectMemberService: GenService<{
+ /**
+ * Returns the list of project members.
+ *
+ * @generated from rpc metalstack.api.v2.ProjectMemberService.List
+ */
+ list: {
+ methodKind: "unary";
+ input: typeof ProjectMemberServiceListRequestSchema;
+ output: typeof ProjectMemberServiceListResponseSchema;
+ };
+ /**
+ * Returns the project member of the project.
+ *
+ * @generated from rpc metalstack.api.v2.ProjectMemberService.Get
+ */
+ get: {
+ methodKind: "unary";
+ input: typeof ProjectMemberServiceGetRequestSchema;
+ output: typeof ProjectMemberServiceGetResponseSchema;
+ };
+ /**
+ * Create a project member.
+ *
+ * @generated from rpc metalstack.api.v2.ProjectMemberService.Create
+ */
+ create: {
+ methodKind: "unary";
+ input: typeof ProjectMemberServiceCreateRequestSchema;
+ output: typeof ProjectMemberServiceCreateResponseSchema;
+ };
+ /**
+ * Delete a project member.
+ *
+ * @generated from rpc metalstack.api.v2.ProjectMemberService.Delete
+ */
+ delete: {
+ methodKind: "unary";
+ input: typeof ProjectMemberServiceDeleteRequestSchema;
+ output: typeof ProjectMemberServiceDeleteResponseSchema;
+ };
+ /**
+ * Update a project member.
+ *
+ * @generated from rpc metalstack.api.v2.ProjectMemberService.Update
+ */
+ update: {
+ methodKind: "unary";
+ input: typeof ProjectMemberServiceUpdateRequestSchema;
+ output: typeof ProjectMemberServiceUpdateResponseSchema;
+ };
+ /**
+ * Leave a project.
+ *
+ * @generated from rpc metalstack.api.v2.ProjectMemberService.Leave
+ */
+ leave: {
+ methodKind: "unary";
+ input: typeof ProjectMemberServiceLeaveRequestSchema;
+ output: typeof ProjectMemberServiceLeaveResponseSchema;
+ };
+}>;
diff --git a/js/metalstack/api/v2/project_member_pb.js b/js/metalstack/api/v2/project_member_pb.js
new file mode 100644
index 00000000..b967c547
--- /dev/null
+++ b/js/metalstack/api/v2/project_member_pb.js
@@ -0,0 +1,88 @@
+// @generated by protoc-gen-es v2.14.1 with parameter "target=ts"
+// @generated from file metalstack/api/v2/project_member.proto (package metalstack.api.v2, syntax proto3)
+/* eslint-disable */
+import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
+import { file_buf_validate_validate } from "../../../buf/validate/validate_pb";
+import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
+import { file_metalstack_api_v2_common } from "./common_pb";
+import { file_metalstack_api_v2_predefined_rules } from "./predefined_rules_pb";
+/**
+ * Describes the file metalstack/api/v2/project_member.proto.
+ */
+export const file_metalstack_api_v2_project_member = /*@__PURE__*/ fileDesc("CiZtZXRhbHN0YWNrL2FwaS92Mi9wcm9qZWN0X21lbWJlci5wcm90bxIRbWV0YWxzdGFjay5hcGkudjIi2QEKDVByb2plY3RNZW1iZXISGwoGbWVtYmVyGAEgASgJQgu6SAhyBpC0rrECARI2CgRyb2xlGAIgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFJvbGVCCLpIBYIBAhABEhwKFGluaGVyaXRlZF9tZW1iZXJzaGlwGAMgASgIEi4KCmNyZWF0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiUKBG1ldGEYBSABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhIocBChJQcm9qZWN0TWVtYmVyUXVlcnkSIAoGbWVtYmVyGAEgASgJQgu6SAhyBpC0rrECAUgAiAEBEjsKBHJvbGUYAiABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0Um9sZUIIukgFggECEAFIAYgBAUIJCgdfbWVtYmVyQgcKBV9yb2xlInIKH1Byb2plY3RNZW1iZXJTZXJ2aWNlTGlzdFJlcXVlc3QSGQoHcHJvamVjdBgBIAEoCUIIukgFcgOwAQESNAoFcXVlcnkYAiABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0TWVtYmVyUXVlcnkiWAoeUHJvamVjdE1lbWJlclNlcnZpY2VHZXRSZXF1ZXN0EhkKB3Byb2plY3QYASABKAlCCLpIBXIDsAEBEhsKBm1lbWJlchgCIAEoCUILukgIcgaQtK6xAgEikwEKIVByb2plY3RNZW1iZXJTZXJ2aWNlQ3JlYXRlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABARIbCgZtZW1iZXIYAiABKAlCC7pICHIGkLSusQIBEjYKBHJvbGUYAyABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0Um9sZUIIukgFggECEAEiwgEKIVByb2plY3RNZW1iZXJTZXJ2aWNlVXBkYXRlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABARIOCgZtZW1iZXIYAiABKAkSNgoEcm9sZRgDIAEoDjIeLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RSb2xlQgi6SAWCAQIQARI6Cgt1cGRhdGVfbWV0YRgEIAEoCzIdLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZU1ldGFCBrpIA8gBASJOCiFQcm9qZWN0TWVtYmVyU2VydmljZURlbGV0ZVJlcXVlc3QSGQoHcHJvamVjdBgBIAEoCUIIukgFcgOwAQESDgoGbWVtYmVyGAIgASgJIlUKIFByb2plY3RNZW1iZXJTZXJ2aWNlTGlzdFJlc3BvbnNlEjEKB21lbWJlcnMYASADKAsyIC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0TWVtYmVyIlMKH1Byb2plY3RNZW1iZXJTZXJ2aWNlR2V0UmVzcG9uc2USMAoGbWVtYmVyGAEgAygLMiAubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdE1lbWJlciJWCiJQcm9qZWN0TWVtYmVyU2VydmljZUNyZWF0ZVJlc3BvbnNlEjAKBm1lbWJlchgBIAEoCzIgLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RNZW1iZXIiVgoiUHJvamVjdE1lbWJlclNlcnZpY2VEZWxldGVSZXNwb25zZRIwCgZtZW1iZXIYASABKAsyIC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0TWVtYmVyIlYKIlByb2plY3RNZW1iZXJTZXJ2aWNlVXBkYXRlUmVzcG9uc2USMAoGbWVtYmVyGAEgASgLMiAubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdE1lbWJlciI9CiBQcm9qZWN0TWVtYmVyU2VydmljZUxlYXZlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABASJVCiFQcm9qZWN0TWVtYmVyU2VydmljZUxlYXZlUmVzcG9uc2USMAoGbWVtYmVyGAEgASgLMiAubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdE1lbWJlcjKWBgoUUHJvamVjdE1lbWJlclNlcnZpY2USfAoETGlzdBIyLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RNZW1iZXJTZXJ2aWNlTGlzdFJlcXVlc3QaMy5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0TWVtYmVyU2VydmljZUxpc3RSZXNwb25zZSILyvMYAwECA+DzGAISeQoDR2V0EjEubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdE1lbWJlclNlcnZpY2VHZXRSZXF1ZXN0GjIubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdE1lbWJlclNlcnZpY2VHZXRSZXNwb25zZSILyvMYAwECA+DzGAISgAEKBkNyZWF0ZRI0Lm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RNZW1iZXJTZXJ2aWNlQ3JlYXRlUmVxdWVzdBo1Lm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RNZW1iZXJTZXJ2aWNlQ3JlYXRlUmVzcG9uc2UiCcrzGAEB4PMYARKAAQoGRGVsZXRlEjQubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdE1lbWJlclNlcnZpY2VEZWxldGVSZXF1ZXN0GjUubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdE1lbWJlclNlcnZpY2VEZWxldGVSZXNwb25zZSIJyvMYAQHg8xgBEoABCgZVcGRhdGUSNC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0TWVtYmVyU2VydmljZVVwZGF0ZVJlcXVlc3QaNS5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0TWVtYmVyU2VydmljZVVwZGF0ZVJlc3BvbnNlIgnK8xgBAeDzGAESfAoFTGVhdmUSMy5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0TWVtYmVyU2VydmljZUxlYXZlUmVxdWVzdBo0Lm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RNZW1iZXJTZXJ2aWNlTGVhdmVSZXNwb25zZSII2PMYAuDzGAFCyAEKFWNvbS5tZXRhbHN0YWNrLmFwaS52MkISUHJvamVjdE1lbWJlclByb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules]);
+/**
+ * Describes the message metalstack.api.v2.ProjectMember.
+ * Use `create(ProjectMemberSchema)` to create a new message.
+ */
+export const ProjectMemberSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project_member, 0);
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberQuery.
+ * Use `create(ProjectMemberQuerySchema)` to create a new message.
+ */
+export const ProjectMemberQuerySchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project_member, 1);
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceListRequest.
+ * Use `create(ProjectMemberServiceListRequestSchema)` to create a new message.
+ */
+export const ProjectMemberServiceListRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project_member, 2);
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceGetRequest.
+ * Use `create(ProjectMemberServiceGetRequestSchema)` to create a new message.
+ */
+export const ProjectMemberServiceGetRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project_member, 3);
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceCreateRequest.
+ * Use `create(ProjectMemberServiceCreateRequestSchema)` to create a new message.
+ */
+export const ProjectMemberServiceCreateRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project_member, 4);
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceUpdateRequest.
+ * Use `create(ProjectMemberServiceUpdateRequestSchema)` to create a new message.
+ */
+export const ProjectMemberServiceUpdateRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project_member, 5);
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceDeleteRequest.
+ * Use `create(ProjectMemberServiceDeleteRequestSchema)` to create a new message.
+ */
+export const ProjectMemberServiceDeleteRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project_member, 6);
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceListResponse.
+ * Use `create(ProjectMemberServiceListResponseSchema)` to create a new message.
+ */
+export const ProjectMemberServiceListResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project_member, 7);
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceGetResponse.
+ * Use `create(ProjectMemberServiceGetResponseSchema)` to create a new message.
+ */
+export const ProjectMemberServiceGetResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project_member, 8);
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceCreateResponse.
+ * Use `create(ProjectMemberServiceCreateResponseSchema)` to create a new message.
+ */
+export const ProjectMemberServiceCreateResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project_member, 9);
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceDeleteResponse.
+ * Use `create(ProjectMemberServiceDeleteResponseSchema)` to create a new message.
+ */
+export const ProjectMemberServiceDeleteResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project_member, 10);
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceUpdateResponse.
+ * Use `create(ProjectMemberServiceUpdateResponseSchema)` to create a new message.
+ */
+export const ProjectMemberServiceUpdateResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project_member, 11);
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceLeaveRequest.
+ * Use `create(ProjectMemberServiceLeaveRequestSchema)` to create a new message.
+ */
+export const ProjectMemberServiceLeaveRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project_member, 12);
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceLeaveResponse.
+ * Use `create(ProjectMemberServiceLeaveResponseSchema)` to create a new message.
+ */
+export const ProjectMemberServiceLeaveResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project_member, 13);
+/**
+ * ProjectMemberService provides project management operations.
+ *
+ * @generated from service metalstack.api.v2.ProjectMemberService
+ */
+export const ProjectMemberService = /*@__PURE__*/ serviceDesc(file_metalstack_api_v2_project_member, 0);
diff --git a/js/metalstack/api/v2/project_member_pb.ts b/js/metalstack/api/v2/project_member_pb.ts
new file mode 100644
index 00000000..a409b1d6
--- /dev/null
+++ b/js/metalstack/api/v2/project_member_pb.ts
@@ -0,0 +1,476 @@
+// @generated by protoc-gen-es v2.14.1 with parameter "target=ts"
+// @generated from file metalstack/api/v2/project_member.proto (package metalstack.api.v2, syntax proto3)
+/* eslint-disable */
+
+import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
+import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
+import { file_buf_validate_validate } from "../../../buf/validate/validate_pb";
+import type { Timestamp } from "@bufbuild/protobuf/wkt";
+import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
+import type { Meta, ProjectRole, UpdateMeta } from "./common_pb";
+import { file_metalstack_api_v2_common } from "./common_pb";
+import { file_metalstack_api_v2_predefined_rules } from "./predefined_rules_pb";
+import type { Message } from "@bufbuild/protobuf";
+
+/**
+ * Describes the file metalstack/api/v2/project_member.proto.
+ */
+export const file_metalstack_api_v2_project_member: GenFile = /*@__PURE__*/
+ fileDesc("CiZtZXRhbHN0YWNrL2FwaS92Mi9wcm9qZWN0X21lbWJlci5wcm90bxIRbWV0YWxzdGFjay5hcGkudjIi2QEKDVByb2plY3RNZW1iZXISGwoGbWVtYmVyGAEgASgJQgu6SAhyBpC0rrECARI2CgRyb2xlGAIgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFJvbGVCCLpIBYIBAhABEhwKFGluaGVyaXRlZF9tZW1iZXJzaGlwGAMgASgIEi4KCmNyZWF0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiUKBG1ldGEYBSABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhIocBChJQcm9qZWN0TWVtYmVyUXVlcnkSIAoGbWVtYmVyGAEgASgJQgu6SAhyBpC0rrECAUgAiAEBEjsKBHJvbGUYAiABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0Um9sZUIIukgFggECEAFIAYgBAUIJCgdfbWVtYmVyQgcKBV9yb2xlInIKH1Byb2plY3RNZW1iZXJTZXJ2aWNlTGlzdFJlcXVlc3QSGQoHcHJvamVjdBgBIAEoCUIIukgFcgOwAQESNAoFcXVlcnkYAiABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0TWVtYmVyUXVlcnkiWAoeUHJvamVjdE1lbWJlclNlcnZpY2VHZXRSZXF1ZXN0EhkKB3Byb2plY3QYASABKAlCCLpIBXIDsAEBEhsKBm1lbWJlchgCIAEoCUILukgIcgaQtK6xAgEikwEKIVByb2plY3RNZW1iZXJTZXJ2aWNlQ3JlYXRlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABARIbCgZtZW1iZXIYAiABKAlCC7pICHIGkLSusQIBEjYKBHJvbGUYAyABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0Um9sZUIIukgFggECEAEiwgEKIVByb2plY3RNZW1iZXJTZXJ2aWNlVXBkYXRlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABARIOCgZtZW1iZXIYAiABKAkSNgoEcm9sZRgDIAEoDjIeLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RSb2xlQgi6SAWCAQIQARI6Cgt1cGRhdGVfbWV0YRgEIAEoCzIdLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZU1ldGFCBrpIA8gBASJOCiFQcm9qZWN0TWVtYmVyU2VydmljZURlbGV0ZVJlcXVlc3QSGQoHcHJvamVjdBgBIAEoCUIIukgFcgOwAQESDgoGbWVtYmVyGAIgASgJIlUKIFByb2plY3RNZW1iZXJTZXJ2aWNlTGlzdFJlc3BvbnNlEjEKB21lbWJlcnMYASADKAsyIC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0TWVtYmVyIlMKH1Byb2plY3RNZW1iZXJTZXJ2aWNlR2V0UmVzcG9uc2USMAoGbWVtYmVyGAEgAygLMiAubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdE1lbWJlciJWCiJQcm9qZWN0TWVtYmVyU2VydmljZUNyZWF0ZVJlc3BvbnNlEjAKBm1lbWJlchgBIAEoCzIgLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RNZW1iZXIiVgoiUHJvamVjdE1lbWJlclNlcnZpY2VEZWxldGVSZXNwb25zZRIwCgZtZW1iZXIYASABKAsyIC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0TWVtYmVyIlYKIlByb2plY3RNZW1iZXJTZXJ2aWNlVXBkYXRlUmVzcG9uc2USMAoGbWVtYmVyGAEgASgLMiAubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdE1lbWJlciI9CiBQcm9qZWN0TWVtYmVyU2VydmljZUxlYXZlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABASJVCiFQcm9qZWN0TWVtYmVyU2VydmljZUxlYXZlUmVzcG9uc2USMAoGbWVtYmVyGAEgASgLMiAubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdE1lbWJlcjKWBgoUUHJvamVjdE1lbWJlclNlcnZpY2USfAoETGlzdBIyLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RNZW1iZXJTZXJ2aWNlTGlzdFJlcXVlc3QaMy5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0TWVtYmVyU2VydmljZUxpc3RSZXNwb25zZSILyvMYAwECA+DzGAISeQoDR2V0EjEubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdE1lbWJlclNlcnZpY2VHZXRSZXF1ZXN0GjIubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdE1lbWJlclNlcnZpY2VHZXRSZXNwb25zZSILyvMYAwECA+DzGAISgAEKBkNyZWF0ZRI0Lm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RNZW1iZXJTZXJ2aWNlQ3JlYXRlUmVxdWVzdBo1Lm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RNZW1iZXJTZXJ2aWNlQ3JlYXRlUmVzcG9uc2UiCcrzGAEB4PMYARKAAQoGRGVsZXRlEjQubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdE1lbWJlclNlcnZpY2VEZWxldGVSZXF1ZXN0GjUubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdE1lbWJlclNlcnZpY2VEZWxldGVSZXNwb25zZSIJyvMYAQHg8xgBEoABCgZVcGRhdGUSNC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0TWVtYmVyU2VydmljZVVwZGF0ZVJlcXVlc3QaNS5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0TWVtYmVyU2VydmljZVVwZGF0ZVJlc3BvbnNlIgnK8xgBAeDzGAESfAoFTGVhdmUSMy5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0TWVtYmVyU2VydmljZUxlYXZlUmVxdWVzdBo0Lm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RNZW1iZXJTZXJ2aWNlTGVhdmVSZXNwb25zZSII2PMYAuDzGAFCyAEKFWNvbS5tZXRhbHN0YWNrLmFwaS52MkISUHJvamVjdE1lbWJlclByb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules]);
+
+/**
+ * ProjectMember defines a user that participates in a project.
+ *
+ * @generated from message metalstack.api.v2.ProjectMember
+ */
+export type ProjectMember = Message<"metalstack.api.v2.ProjectMember"> & {
+ /**
+ * Member is the user id of the member.
+ *
+ * @generated from field: string member = 1;
+ */
+ member: string;
+
+ /**
+ * Role is the role of the member.
+ *
+ * @generated from field: metalstack.api.v2.ProjectRole role = 2;
+ */
+ role: ProjectRole;
+
+ /**
+ * InheritedMembership indicates that this member has implicit permissions on the project through his membership within the tenant.
+ * This member does not have direct project membership but gains permissions on this project from the role he has in the tenant.
+ * Inherited memberships are not included in member lists for users with guest permission but only for direct tenant members.
+ *
+ * @generated from field: bool inherited_membership = 3;
+ */
+ inheritedMembership: boolean;
+
+ /**
+ * CreatedAt the date when the member was added to the project.
+ *
+ * @generated from field: google.protobuf.Timestamp created_at = 4;
+ */
+ createdAt?: Timestamp | undefined;
+
+ /**
+ * Meta for this project member.
+ *
+ * @generated from field: metalstack.api.v2.Meta meta = 5;
+ */
+ meta?: Meta | undefined;
+};
+
+/**
+ * Describes the message metalstack.api.v2.ProjectMember.
+ * Use `create(ProjectMemberSchema)` to create a new message.
+ */
+export const ProjectMemberSchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_api_v2_project_member, 0);
+
+/**
+ * ProjectQuery is used to search projects.
+ *
+ * @generated from message metalstack.api.v2.ProjectMemberQuery
+ */
+export type ProjectMemberQuery = Message<"metalstack.api.v2.ProjectMemberQuery"> & {
+ /**
+ * Member is the user id of the member.
+ *
+ * @generated from field: optional string member = 1;
+ */
+ member?: string | undefined;
+
+ /**
+ * Role is the role of the member.
+ *
+ * @generated from field: optional metalstack.api.v2.ProjectRole role = 2;
+ */
+ role?: ProjectRole | undefined;
+};
+
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberQuery.
+ * Use `create(ProjectMemberQuerySchema)` to create a new message.
+ */
+export const ProjectMemberQuerySchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_api_v2_project_member, 1);
+
+/**
+ * ProjectMemberServiceListRequest is the request payload to list all project members.
+ *
+ * @generated from message metalstack.api.v2.ProjectMemberServiceListRequest
+ */
+export type ProjectMemberServiceListRequest = Message<"metalstack.api.v2.ProjectMemberServiceListRequest"> & {
+ /**
+ * Project is the uuid of the project.
+ *
+ * @generated from field: string project = 1;
+ */
+ project: string;
+
+ /**
+ * Query for projects.
+ *
+ * @generated from field: metalstack.api.v2.ProjectMemberQuery query = 2;
+ */
+ query?: ProjectMemberQuery | undefined;
+};
+
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceListRequest.
+ * Use `create(ProjectMemberServiceListRequestSchema)` to create a new message.
+ */
+export const ProjectMemberServiceListRequestSchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_api_v2_project_member, 2);
+
+/**
+ * ProjectMemberServiceGetRequest is the request payload to get a project.
+ *
+ * @generated from message metalstack.api.v2.ProjectMemberServiceGetRequest
+ */
+export type ProjectMemberServiceGetRequest = Message<"metalstack.api.v2.ProjectMemberServiceGetRequest"> & {
+ /**
+ * Project is the uuid of the project.
+ *
+ * @generated from field: string project = 1;
+ */
+ project: string;
+
+ /**
+ * Member is the user id of the member.
+ *
+ * @generated from field: string member = 2;
+ */
+ member: string;
+};
+
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceGetRequest.
+ * Use `create(ProjectMemberServiceGetRequestSchema)` to create a new message.
+ */
+export const ProjectMemberServiceGetRequestSchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_api_v2_project_member, 3);
+
+/**
+ * ProjectMemberServiceCreateRequest is the request payload to Create a project.
+ *
+ * @generated from message metalstack.api.v2.ProjectMemberServiceCreateRequest
+ */
+export type ProjectMemberServiceCreateRequest = Message<"metalstack.api.v2.ProjectMemberServiceCreateRequest"> & {
+ /**
+ * Project is the uuid of the project.
+ *
+ * @generated from field: string project = 1;
+ */
+ project: string;
+
+ /**
+ * Login of the member to add.
+ *
+ * @generated from field: string member = 2;
+ */
+ member: string;
+
+ /**
+ * Role to assign to the new member.
+ *
+ * @generated from field: metalstack.api.v2.ProjectRole role = 3;
+ */
+ role: ProjectRole;
+};
+
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceCreateRequest.
+ * Use `create(ProjectMemberServiceCreateRequestSchema)` to create a new message.
+ */
+export const ProjectMemberServiceCreateRequestSchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_api_v2_project_member, 4);
+
+/**
+ * ProjectMemberServiceUpdateRequest is the request payload to update a project.
+ *
+ * @generated from message metalstack.api.v2.ProjectMemberServiceUpdateRequest
+ */
+export type ProjectMemberServiceUpdateRequest = Message<"metalstack.api.v2.ProjectMemberServiceUpdateRequest"> & {
+ /**
+ * Project is the uuid of the project.
+ *
+ * @generated from field: string project = 1;
+ */
+ project: string;
+
+ /**
+ * Member is the id of the member to remove from this project.
+ *
+ * @generated from field: string member = 2;
+ */
+ member: string;
+
+ /**
+ * Role is the role in this project the user will get after the update.
+ *
+ * @generated from field: metalstack.api.v2.ProjectRole role = 3;
+ */
+ role: ProjectRole;
+
+ /**
+ * UpdateMeta contains the timestamp and strategy to be used in this update request.
+ *
+ * @generated from field: metalstack.api.v2.UpdateMeta update_meta = 4;
+ */
+ updateMeta?: UpdateMeta | undefined;
+};
+
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceUpdateRequest.
+ * Use `create(ProjectMemberServiceUpdateRequestSchema)` to create a new message.
+ */
+export const ProjectMemberServiceUpdateRequestSchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_api_v2_project_member, 5);
+
+/**
+ * ProjectMemberServiceDeleteRequest is the request payload to delete a project.
+ *
+ * @generated from message metalstack.api.v2.ProjectMemberServiceDeleteRequest
+ */
+export type ProjectMemberServiceDeleteRequest = Message<"metalstack.api.v2.ProjectMemberServiceDeleteRequest"> & {
+ /**
+ * Project is the uuid of the project.
+ *
+ * @generated from field: string project = 1;
+ */
+ project: string;
+
+ /**
+ * Member is the id of the member to remove from this project.
+ *
+ * @generated from field: string member = 2;
+ */
+ member: string;
+};
+
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceDeleteRequest.
+ * Use `create(ProjectMemberServiceDeleteRequestSchema)` to create a new message.
+ */
+export const ProjectMemberServiceDeleteRequestSchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_api_v2_project_member, 6);
+
+/**
+ * ProjectMemberServiceListResponse is the response payload to list all project members.
+ *
+ * @generated from message metalstack.api.v2.ProjectMemberServiceListResponse
+ */
+export type ProjectMemberServiceListResponse = Message<"metalstack.api.v2.ProjectMemberServiceListResponse"> & {
+ /**
+ * Members is a list of project members.
+ *
+ * @generated from field: repeated metalstack.api.v2.ProjectMember members = 1;
+ */
+ members: ProjectMember[];
+};
+
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceListResponse.
+ * Use `create(ProjectMemberServiceListResponseSchema)` to create a new message.
+ */
+export const ProjectMemberServiceListResponseSchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_api_v2_project_member, 7);
+
+/**
+ * ProjectMemberServiceGetResponse is the response payload to get a projects.
+ *
+ * @generated from message metalstack.api.v2.ProjectMemberServiceGetResponse
+ */
+export type ProjectMemberServiceGetResponse = Message<"metalstack.api.v2.ProjectMemberServiceGetResponse"> & {
+ /**
+ * Member in this project, projects guests will only see direct project members and not implicit memberships from tenant permissions.
+ *
+ * @generated from field: repeated metalstack.api.v2.ProjectMember member = 1;
+ */
+ member: ProjectMember[];
+};
+
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceGetResponse.
+ * Use `create(ProjectMemberServiceGetResponseSchema)` to create a new message.
+ */
+export const ProjectMemberServiceGetResponseSchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_api_v2_project_member, 8);
+
+/**
+ * ProjectMemberServiceCreateResponse is the response payload to create a project member.
+ *
+ * @generated from message metalstack.api.v2.ProjectMemberServiceCreateResponse
+ */
+export type ProjectMemberServiceCreateResponse = Message<"metalstack.api.v2.ProjectMemberServiceCreateResponse"> & {
+ /**
+ * Member is the created project member
+ *
+ * @generated from field: metalstack.api.v2.ProjectMember member = 1;
+ */
+ member?: ProjectMember | undefined;
+};
+
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceCreateResponse.
+ * Use `create(ProjectMemberServiceCreateResponseSchema)` to create a new message.
+ */
+export const ProjectMemberServiceCreateResponseSchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_api_v2_project_member, 9);
+
+/**
+ * ProjectMemberServiceDeleteResponse is the response payload to delete a project member.
+ *
+ * @generated from message metalstack.api.v2.ProjectMemberServiceDeleteResponse
+ */
+export type ProjectMemberServiceDeleteResponse = Message<"metalstack.api.v2.ProjectMemberServiceDeleteResponse"> & {
+ /**
+ * Member is the deleted project member
+ *
+ * @generated from field: metalstack.api.v2.ProjectMember member = 1;
+ */
+ member?: ProjectMember | undefined;
+};
+
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceDeleteResponse.
+ * Use `create(ProjectMemberServiceDeleteResponseSchema)` to create a new message.
+ */
+export const ProjectMemberServiceDeleteResponseSchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_api_v2_project_member, 10);
+
+/**
+ * ProjectMemberServiceUpdateResponse is the response payload to update a project member.
+ *
+ * @generated from message metalstack.api.v2.ProjectMemberServiceUpdateResponse
+ */
+export type ProjectMemberServiceUpdateResponse = Message<"metalstack.api.v2.ProjectMemberServiceUpdateResponse"> & {
+ /**
+ * Member is the updated project member
+ *
+ * @generated from field: metalstack.api.v2.ProjectMember member = 1;
+ */
+ member?: ProjectMember | undefined;
+};
+
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceUpdateResponse.
+ * Use `create(ProjectMemberServiceUpdateResponseSchema)` to create a new message.
+ */
+export const ProjectMemberServiceUpdateResponseSchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_api_v2_project_member, 11);
+
+/**
+ * ProjectMemberServiceLeaveRequest is used to leave a project. This way a member is not required to ask a project owner to remove him.
+ *
+ * @generated from message metalstack.api.v2.ProjectMemberServiceLeaveRequest
+ */
+export type ProjectMemberServiceLeaveRequest = Message<"metalstack.api.v2.ProjectMemberServiceLeaveRequest"> & {
+ /**
+ * Project of the uuid of the project that the user wants to leave.
+ *
+ * @generated from field: string project = 1;
+ */
+ project: string;
+};
+
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceLeaveRequest.
+ * Use `create(ProjectMemberServiceLeaveRequestSchema)` to create a new message.
+ */
+export const ProjectMemberServiceLeaveRequestSchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_api_v2_project_member, 12);
+
+/**
+ * ProjectMemberServiceLeaveResponse is the response payload to a leave project request.
+ *
+ * @generated from message metalstack.api.v2.ProjectMemberServiceLeaveResponse
+ */
+export type ProjectMemberServiceLeaveResponse = Message<"metalstack.api.v2.ProjectMemberServiceLeaveResponse"> & {
+ /**
+ * Member is the member of this project.
+ *
+ * @generated from field: metalstack.api.v2.ProjectMember member = 1;
+ */
+ member?: ProjectMember | undefined;
+};
+
+/**
+ * Describes the message metalstack.api.v2.ProjectMemberServiceLeaveResponse.
+ * Use `create(ProjectMemberServiceLeaveResponseSchema)` to create a new message.
+ */
+export const ProjectMemberServiceLeaveResponseSchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_api_v2_project_member, 13);
+
+/**
+ * ProjectMemberService provides project management operations.
+ *
+ * @generated from service metalstack.api.v2.ProjectMemberService
+ */
+export const ProjectMemberService: GenService<{
+ /**
+ * Returns the list of project members.
+ *
+ * @generated from rpc metalstack.api.v2.ProjectMemberService.List
+ */
+ list: {
+ methodKind: "unary";
+ input: typeof ProjectMemberServiceListRequestSchema;
+ output: typeof ProjectMemberServiceListResponseSchema;
+ },
+ /**
+ * Returns the project member of the project.
+ *
+ * @generated from rpc metalstack.api.v2.ProjectMemberService.Get
+ */
+ get: {
+ methodKind: "unary";
+ input: typeof ProjectMemberServiceGetRequestSchema;
+ output: typeof ProjectMemberServiceGetResponseSchema;
+ },
+ /**
+ * Create a project member.
+ *
+ * @generated from rpc metalstack.api.v2.ProjectMemberService.Create
+ */
+ create: {
+ methodKind: "unary";
+ input: typeof ProjectMemberServiceCreateRequestSchema;
+ output: typeof ProjectMemberServiceCreateResponseSchema;
+ },
+ /**
+ * Delete a project member.
+ *
+ * @generated from rpc metalstack.api.v2.ProjectMemberService.Delete
+ */
+ delete: {
+ methodKind: "unary";
+ input: typeof ProjectMemberServiceDeleteRequestSchema;
+ output: typeof ProjectMemberServiceDeleteResponseSchema;
+ },
+ /**
+ * Update a project member.
+ *
+ * @generated from rpc metalstack.api.v2.ProjectMemberService.Update
+ */
+ update: {
+ methodKind: "unary";
+ input: typeof ProjectMemberServiceUpdateRequestSchema;
+ output: typeof ProjectMemberServiceUpdateResponseSchema;
+ },
+ /**
+ * Leave a project.
+ *
+ * @generated from rpc metalstack.api.v2.ProjectMemberService.Leave
+ */
+ leave: {
+ methodKind: "unary";
+ input: typeof ProjectMemberServiceLeaveRequestSchema;
+ output: typeof ProjectMemberServiceLeaveResponseSchema;
+ },
+}> = /*@__PURE__*/
+ serviceDesc(file_metalstack_api_v2_project_member, 0);
+
diff --git a/js/metalstack/api/v2/project_pb.d.ts b/js/metalstack/api/v2/project_pb.d.ts
index 7fb60e0e..6e37bd92 100644
--- a/js/metalstack/api/v2/project_pb.d.ts
+++ b/js/metalstack/api/v2/project_pb.d.ts
@@ -55,50 +55,6 @@ export type Project = Message<"metalstack.api.v2.Project"> & {
* Use `create(ProjectSchema)` to create a new message.
*/
export declare const ProjectSchema: GenMessage;
-/**
- * ProjectMember defines a user that participates in a project.
- *
- * @generated from message metalstack.api.v2.ProjectMember
- */
-export type ProjectMember = Message<"metalstack.api.v2.ProjectMember"> & {
- /**
- * Id is the user id of the member.
- *
- * @generated from field: string id = 1;
- */
- id: string;
- /**
- * Role is the role of the member.
- *
- * @generated from field: metalstack.api.v2.ProjectRole role = 2;
- */
- role: ProjectRole;
- /**
- * InheritedMembership indicates that this member has implicit permissions on the project through his membership within the tenant.
- * This member does not have direct project membership but gains permissions on this project from the role he has in the tenant.
- * Inherited memberships are not included in member lists for users with guest permission but only for direct tenant members.
- *
- * @generated from field: bool inherited_membership = 3;
- */
- inheritedMembership: boolean;
- /**
- * CreatedAt the date when the member was added to the project.
- *
- * @generated from field: google.protobuf.Timestamp created_at = 4;
- */
- createdAt?: Timestamp | undefined;
- /**
- * Meta for this project member.
- *
- * @generated from field: metalstack.api.v2.Meta meta = 5;
- */
- meta?: Meta | undefined;
-};
-/**
- * Describes the message metalstack.api.v2.ProjectMember.
- * Use `create(ProjectMemberSchema)` to create a new message.
- */
-export declare const ProjectMemberSchema: GenMessage;
/**
* ProjectInvite defines invite to project.
*
@@ -267,12 +223,6 @@ export type ProjectServiceGetResponse = Message<"metalstack.api.v2.ProjectServic
* @generated from field: metalstack.api.v2.Project project = 1;
*/
project?: Project | undefined;
- /**
- * ProjectMembers in this project, projects guests will only see direct project members and not implicit memberships from tenant permissions.
- *
- * @generated from field: repeated metalstack.api.v2.ProjectMember project_members = 2;
- */
- projectMembers: ProjectMember[];
};
/**
* Describes the message metalstack.api.v2.ProjectServiceGetResponse.
@@ -558,166 +508,6 @@ export type ProjectServiceInviteGetResponse = Message<"metalstack.api.v2.Project
* Use `create(ProjectServiceInviteGetResponseSchema)` to create a new message.
*/
export declare const ProjectServiceInviteGetResponseSchema: GenMessage;
-/**
- * ProjectServiceLeaveRequest is used to leave a project.
- *
- * @generated from message metalstack.api.v2.ProjectServiceLeaveRequest
- */
-export type ProjectServiceLeaveRequest = Message<"metalstack.api.v2.ProjectServiceLeaveRequest"> & {
- /**
- * Project is the uuid of the project.
- *
- * @generated from field: string project = 1;
- */
- project: string;
-};
-/**
- * Describes the message metalstack.api.v2.ProjectServiceLeaveRequest.
- * Use `create(ProjectServiceLeaveRequestSchema)` to create a new message.
- */
-export declare const ProjectServiceLeaveRequestSchema: GenMessage;
-/**
- * ProjectServiceLeaveResponse is the response payload to a leave project request.
- *
- * @generated from message metalstack.api.v2.ProjectServiceLeaveResponse
- */
-export type ProjectServiceLeaveResponse = Message<"metalstack.api.v2.ProjectServiceLeaveResponse"> & {};
-/**
- * Describes the message metalstack.api.v2.ProjectServiceLeaveResponse.
- * Use `create(ProjectServiceLeaveResponseSchema)` to create a new message.
- */
-export declare const ProjectServiceLeaveResponseSchema: GenMessage;
-/**
- * ProjectServiceAddMemberRequest is the request payload for adding a member to a project.
- *
- * @generated from message metalstack.api.v2.ProjectServiceAddMemberRequest
- */
-export type ProjectServiceAddMemberRequest = Message<"metalstack.api.v2.ProjectServiceAddMemberRequest"> & {
- /**
- * Project is the uuid of the project.
- *
- * @generated from field: string project = 1;
- */
- project: string;
- /**
- * Login of the member to add.
- *
- * @generated from field: string member = 2;
- */
- member: string;
- /**
- * Role to assign to the new member.
- *
- * @generated from field: metalstack.api.v2.ProjectRole role = 3;
- */
- role: ProjectRole;
-};
-/**
- * Describes the message metalstack.api.v2.ProjectServiceAddMemberRequest.
- * Use `create(ProjectServiceAddMemberRequestSchema)` to create a new message.
- */
-export declare const ProjectServiceAddMemberRequestSchema: GenMessage;
-/**
- * ProjectServiceAddMemberResponse is the response payload for the add member request.
- *
- * @generated from message metalstack.api.v2.ProjectServiceAddMemberResponse
- */
-export type ProjectServiceAddMemberResponse = Message<"metalstack.api.v2.ProjectServiceAddMemberResponse"> & {
- /**
- * ProjectRole is the added project member.
- *
- * @generated from field: metalstack.api.v2.ProjectRole project_member = 1;
- */
- projectMember: ProjectRole;
-};
-/**
- * Describes the message metalstack.api.v2.ProjectServiceAddMemberResponse.
- * Use `create(ProjectServiceAddMemberResponseSchema)` to create a new message.
- */
-export declare const ProjectServiceAddMemberResponseSchema: GenMessage;
-/**
- * ProjectServiceRemoveMemberRequest is used to remove a member from a project.
- *
- * @generated from message metalstack.api.v2.ProjectServiceRemoveMemberRequest
- */
-export type ProjectServiceRemoveMemberRequest = Message<"metalstack.api.v2.ProjectServiceRemoveMemberRequest"> & {
- /**
- * Project is the uuid of the project.
- *
- * @generated from field: string project = 1;
- */
- project: string;
- /**
- * Member is the id of the member to remove from this project.
- *
- * @generated from field: string member = 2;
- */
- member: string;
-};
-/**
- * Describes the message metalstack.api.v2.ProjectServiceRemoveMemberRequest.
- * Use `create(ProjectServiceRemoveMemberRequestSchema)` to create a new message.
- */
-export declare const ProjectServiceRemoveMemberRequestSchema: GenMessage;
-/**
- * ProjectServiceRemoveMemberResponse is the response payload to a remove member request.
- *
- * @generated from message metalstack.api.v2.ProjectServiceRemoveMemberResponse
- */
-export type ProjectServiceRemoveMemberResponse = Message<"metalstack.api.v2.ProjectServiceRemoveMemberResponse"> & {};
-/**
- * Describes the message metalstack.api.v2.ProjectServiceRemoveMemberResponse.
- * Use `create(ProjectServiceRemoveMemberResponseSchema)` to create a new message.
- */
-export declare const ProjectServiceRemoveMemberResponseSchema: GenMessage;
-/**
- * ProjectServiceUpdateMemberRequest is used to update a member of a project.
- *
- * @generated from message metalstack.api.v2.ProjectServiceUpdateMemberRequest
- */
-export type ProjectServiceUpdateMemberRequest = Message<"metalstack.api.v2.ProjectServiceUpdateMemberRequest"> & {
- /**
- * Project is the uuid of the project.
- *
- * @generated from field: string project = 1;
- */
- project: string;
- /**
- * Member is the id of the member to remove from this project.
- *
- * @generated from field: string member = 2;
- */
- member: string;
- /**
- * Role is the role in this project the user will get after the update.
- *
- * @generated from field: metalstack.api.v2.ProjectRole role = 3;
- */
- role: ProjectRole;
-};
-/**
- * Describes the message metalstack.api.v2.ProjectServiceUpdateMemberRequest.
- * Use `create(ProjectServiceUpdateMemberRequestSchema)` to create a new message.
- */
-export declare const ProjectServiceUpdateMemberRequestSchema: GenMessage;
-/**
- * ProjectServiceUpdateMemberResponse is the response payload to a update member request.
- *
- * @generated from message metalstack.api.v2.ProjectServiceUpdateMemberResponse
- */
-export type ProjectServiceUpdateMemberResponse = Message<"metalstack.api.v2.ProjectServiceUpdateMemberResponse"> & {
- /**
- * ProjectMember is the updated project member.
- *
- * @generated from field: metalstack.api.v2.ProjectMember project_member = 1;
- */
- projectMember?: ProjectMember | undefined;
-};
-/**
- * Describes the message metalstack.api.v2.ProjectServiceUpdateMemberResponse.
- * Use `create(ProjectServiceUpdateMemberResponseSchema)` to create a new message.
- */
-export declare const ProjectServiceUpdateMemberResponseSchema: GenMessage;
/**
* ProjectServiceInviteAcceptRequest is the request payload to a accept invite request.
*
@@ -851,46 +641,6 @@ export declare const ProjectService: GenService<{
input: typeof ProjectServiceUpdateRequestSchema;
output: typeof ProjectServiceUpdateResponseSchema;
};
- /**
- * Leave project.
- *
- * @generated from rpc metalstack.api.v2.ProjectService.Leave
- */
- leave: {
- methodKind: "unary";
- input: typeof ProjectServiceLeaveRequestSchema;
- output: typeof ProjectServiceLeaveResponseSchema;
- };
- /**
- * AddMember adds a user to a project.
- *
- * @generated from rpc metalstack.api.v2.ProjectService.AddMember
- */
- addMember: {
- methodKind: "unary";
- input: typeof ProjectServiceAddMemberRequestSchema;
- output: typeof ProjectServiceAddMemberResponseSchema;
- };
- /**
- * RemoveMember removes a user from a project.
- *
- * @generated from rpc metalstack.api.v2.ProjectService.RemoveMember
- */
- removeMember: {
- methodKind: "unary";
- input: typeof ProjectServiceRemoveMemberRequestSchema;
- output: typeof ProjectServiceRemoveMemberResponseSchema;
- };
- /**
- * UpdateMember updates a user for a project.
- *
- * @generated from rpc metalstack.api.v2.ProjectService.UpdateMember
- */
- updateMember: {
- methodKind: "unary";
- input: typeof ProjectServiceUpdateMemberRequestSchema;
- output: typeof ProjectServiceUpdateMemberResponseSchema;
- };
/**
* Invite a user to a project.
*
diff --git a/js/metalstack/api/v2/project_pb.js b/js/metalstack/api/v2/project_pb.js
index 64caf325..440d320f 100644
--- a/js/metalstack/api/v2/project_pb.js
+++ b/js/metalstack/api/v2/project_pb.js
@@ -9,167 +9,122 @@ import { file_metalstack_api_v2_predefined_rules } from "./predefined_rules_pb";
/**
* Describes the file metalstack/api/v2/project.proto.
*/
-export const file_metalstack_api_v2_project = /*@__PURE__*/ fileDesc("Ch9tZXRhbHN0YWNrL2FwaS92Mi9wcm9qZWN0LnByb3RvEhFtZXRhbHN0YWNrLmFwaS52MiLAAQoHUHJvamVjdBIMCgR1dWlkGAEgASgJEiUKBG1ldGEYAiABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhEhkKBG5hbWUYAyABKAlCC7pICHIGwLOusQIBEiAKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECARIOCgZ0ZW5hbnQYBSABKAkSJAoKYXZhdGFyX3VybBgGIAEoCUILukgIcgbgs66xAgFIAIgBAUINCgtfYXZhdGFyX3VybCLIAQoNUHJvamVjdE1lbWJlchIKCgJpZBgBIAEoCRI2CgRyb2xlGAIgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFJvbGVCCLpIBYIBAhABEhwKFGluaGVyaXRlZF9tZW1iZXJzaGlwGAMgASgIEi4KCmNyZWF0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiUKBG1ldGEYBSABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhIpICCg1Qcm9qZWN0SW52aXRlEg4KBnNlY3JldBgBIAEoCRIPCgdwcm9qZWN0GAIgASgJEjYKBHJvbGUYAyABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0Um9sZUIIukgFggECEAESDgoGam9pbmVkGAQgASgIEhQKDHByb2plY3RfbmFtZRgFIAEoCRIOCgZ0ZW5hbnQYBiABKAkSEwoLdGVuYW50X25hbWUYByABKAkSLgoKZXhwaXJlc19hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLQoJam9pbmVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCJLChlQcm9qZWN0U2VydmljZUxpc3RSZXF1ZXN0Ei4KBXF1ZXJ5GAEgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFF1ZXJ5IsUBCgxQcm9qZWN0UXVlcnkSGwoEdXVpZBgBIAEoCUIIukgFcgOwAQFIAIgBARIeCgRuYW1lGAIgASgJQgu6SAhyBsCzrrECAUgBiAEBEiAKBnRlbmFudBgDIAEoCUILukgIcgaQtK6xAgFIAogBARIuCgZsYWJlbHMYBCABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5MYWJlbHNIA4gBAUIHCgVfdXVpZEIHCgVfbmFtZUIJCgdfdGVuYW50QgkKB19sYWJlbHMiSgoaUHJvamVjdFNlcnZpY2VMaXN0UmVzcG9uc2USLAoIcHJvamVjdHMYASADKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0IjUKGFByb2plY3RTZXJ2aWNlR2V0UmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABASKDAQoZUHJvamVjdFNlcnZpY2VHZXRSZXNwb25zZRIrCgdwcm9qZWN0GAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdBI5Cg9wcm9qZWN0X21lbWJlcnMYAiADKAsyIC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0TWVtYmVyItYBChtQcm9qZWN0U2VydmljZUNyZWF0ZVJlcXVlc3QSGgoFbG9naW4YASABKAlCC7pICHIGwLOusQIBEhkKBG5hbWUYAiABKAlCC7pICHIGwLOusQIBEiAKC2Rlc2NyaXB0aW9uGAMgASgJQgu6SAhyBsizrrECARIkCgphdmF0YXJfdXJsGAQgASgJQgu6SAhyBuCzrrECAUgAiAEBEikKBmxhYmVscxgFIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0INCgtfYXZhdGFyX3VybCJLChxQcm9qZWN0U2VydmljZUNyZWF0ZVJlc3BvbnNlEisKB3Byb2plY3QYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0IjgKG1Byb2plY3RTZXJ2aWNlRGVsZXRlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABASJLChxQcm9qZWN0U2VydmljZURlbGV0ZVJlc3BvbnNlEisKB3Byb2plY3QYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0IsoCChtQcm9qZWN0U2VydmljZVVwZGF0ZVJlcXVlc3QSGQoHcHJvamVjdBgBIAEoCUIIukgFcgOwAQESOgoLdXBkYXRlX21ldGEYAiABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5VcGRhdGVNZXRhQga6SAPIAQESHgoEbmFtZRgDIAEoCUILukgIcgbAs66xAgFIAIgBARIlCgtkZXNjcmlwdGlvbhgEIAEoCUILukgIcgbIs66xAgFIAYgBARIkCgphdmF0YXJfdXJsGAUgASgJQgu6SAhyBuCzrrECAUgCiAEBEjQKBmxhYmVscxgGIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZUxhYmVsc0gDiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkINCgtfYXZhdGFyX3VybEIJCgdfbGFiZWxzIksKHFByb2plY3RTZXJ2aWNlVXBkYXRlUmVzcG9uc2USKwoHcHJvamVjdBgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3QicAobUHJvamVjdFNlcnZpY2VJbnZpdGVSZXF1ZXN0EhkKB3Byb2plY3QYASABKAlCCLpIBXIDsAEBEjYKBHJvbGUYAiABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0Um9sZUIIukgFggECEAEiUAocUHJvamVjdFNlcnZpY2VJbnZpdGVSZXNwb25zZRIwCgZpbnZpdGUYASABKAsyIC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0SW52aXRlIj0KIFByb2plY3RTZXJ2aWNlSW52aXRlc0xpc3RSZXF1ZXN0EhkKB3Byb2plY3QYASABKAlCCLpIBXIDsAEBIlYKIVByb2plY3RTZXJ2aWNlSW52aXRlc0xpc3RSZXNwb25zZRIxCgdpbnZpdGVzGAEgAygLMiAubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdEludml0ZSIwCh5Qcm9qZWN0U2VydmljZUludml0ZUdldFJlcXVlc3QSDgoGc2VjcmV0GAEgASgJIlMKH1Byb2plY3RTZXJ2aWNlSW52aXRlR2V0UmVzcG9uc2USMAoGaW52aXRlGAEgASgLMiAubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdEludml0ZSI3ChpQcm9qZWN0U2VydmljZUxlYXZlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABASIdChtQcm9qZWN0U2VydmljZUxlYXZlUmVzcG9uc2UikAEKHlByb2plY3RTZXJ2aWNlQWRkTWVtYmVyUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABARIbCgZtZW1iZXIYAiABKAlCC7pICHIGkLSusQIBEjYKBHJvbGUYAyABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0Um9sZUIIukgFggECEAEiWQofUHJvamVjdFNlcnZpY2VBZGRNZW1iZXJSZXNwb25zZRI2Cg5wcm9qZWN0X21lbWJlchgBIAEoDjIeLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RSb2xlIk4KIVByb2plY3RTZXJ2aWNlUmVtb3ZlTWVtYmVyUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABARIOCgZtZW1iZXIYAiABKAkiJAoiUHJvamVjdFNlcnZpY2VSZW1vdmVNZW1iZXJSZXNwb25zZSKGAQohUHJvamVjdFNlcnZpY2VVcGRhdGVNZW1iZXJSZXF1ZXN0EhkKB3Byb2plY3QYASABKAlCCLpIBXIDsAEBEg4KBm1lbWJlchgCIAEoCRI2CgRyb2xlGAMgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFJvbGVCCLpIBYIBAhABIl4KIlByb2plY3RTZXJ2aWNlVXBkYXRlTWVtYmVyUmVzcG9uc2USOAoOcHJvamVjdF9tZW1iZXIYASABKAsyIC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0TWVtYmVyIjMKIVByb2plY3RTZXJ2aWNlSW52aXRlQWNjZXB0UmVxdWVzdBIOCgZzZWNyZXQYASABKAkiSwoiUHJvamVjdFNlcnZpY2VJbnZpdGVBY2NlcHRSZXNwb25zZRIPCgdwcm9qZWN0GAEgASgJEhQKDHByb2plY3RfbmFtZRgCIAEoCSJOCiFQcm9qZWN0U2VydmljZUludml0ZURlbGV0ZVJlcXVlc3QSGQoHcHJvamVjdBgBIAEoCUIIukgFcgOwAQESDgoGc2VjcmV0GAIgASgJIiQKIlByb2plY3RTZXJ2aWNlSW52aXRlRGVsZXRlUmVzcG9uc2Uy4Q0KDlByb2plY3RTZXJ2aWNlEm0KBExpc3QSLC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUxpc3RSZXF1ZXN0Gi0ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VMaXN0UmVzcG9uc2UiCNjzGALg8xgCEm0KA0dldBIrLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlR2V0UmVxdWVzdBosLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlR2V0UmVzcG9uc2UiC8rzGAMBAgPg8xgCEnUKBkNyZWF0ZRIuLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlQ3JlYXRlUmVxdWVzdBovLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlQ3JlYXRlUmVzcG9uc2UiCsLzGAIBAuDzGAESdAoGRGVsZXRlEi4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VEZWxldGVSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VEZWxldGVSZXNwb25zZSIJyvMYAQHg8xgBEnUKBlVwZGF0ZRIuLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlVXBkYXRlUmVxdWVzdBovLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlVXBkYXRlUmVzcG9uc2UiCsrzGAIBAuDzGAEScQoFTGVhdmUSLS5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUxlYXZlUmVxdWVzdBouLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlTGVhdmVSZXNwb25zZSIJyvMYAQPg8xgBEn0KCUFkZE1lbWJlchIxLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlQWRkTWVtYmVyUmVxdWVzdBoyLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlQWRkTWVtYmVyUmVzcG9uc2UiCcrzGAEB4PMYARKGAQoMUmVtb3ZlTWVtYmVyEjQubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VSZW1vdmVNZW1iZXJSZXF1ZXN0GjUubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VSZW1vdmVNZW1iZXJSZXNwb25zZSIJyvMYAQHg8xgBEoYBCgxVcGRhdGVNZW1iZXISNC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZVVwZGF0ZU1lbWJlclJlcXVlc3QaNS5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZVVwZGF0ZU1lbWJlclJlc3BvbnNlIgnK8xgBAeDzGAESdAoGSW52aXRlEi4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVSZXNwb25zZSIJyvMYAQHg8xgBEoUBCgxJbnZpdGVBY2NlcHQSNC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUludml0ZUFjY2VwdFJlcXVlc3QaNS5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUludml0ZUFjY2VwdFJlc3BvbnNlIgjY8xgC4PMYARKGAQoMSW52aXRlRGVsZXRlEjQubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVEZWxldGVSZXF1ZXN0GjUubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVEZWxldGVSZXNwb25zZSIJyvMYAQHg8xgBEoMBCgtJbnZpdGVzTGlzdBIzLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlSW52aXRlc0xpc3RSZXF1ZXN0GjQubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVzTGlzdFJlc3BvbnNlIgnK8xgBAeDzGAISfAoJSW52aXRlR2V0EjEubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVHZXRSZXF1ZXN0GjIubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVHZXRSZXNwb25zZSII2PMYAuDzGAJCwgEKFWNvbS5tZXRhbHN0YWNrLmFwaS52MkIMUHJvamVjdFByb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules]);
+export const file_metalstack_api_v2_project = /*@__PURE__*/ fileDesc("Ch9tZXRhbHN0YWNrL2FwaS92Mi9wcm9qZWN0LnByb3RvEhFtZXRhbHN0YWNrLmFwaS52MiLAAQoHUHJvamVjdBIMCgR1dWlkGAEgASgJEiUKBG1ldGEYAiABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhEhkKBG5hbWUYAyABKAlCC7pICHIGwLOusQIBEiAKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECARIOCgZ0ZW5hbnQYBSABKAkSJAoKYXZhdGFyX3VybBgGIAEoCUILukgIcgbgs66xAgFIAIgBAUINCgtfYXZhdGFyX3VybCKSAgoNUHJvamVjdEludml0ZRIOCgZzZWNyZXQYASABKAkSDwoHcHJvamVjdBgCIAEoCRI2CgRyb2xlGAMgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFJvbGVCCLpIBYIBAhABEg4KBmpvaW5lZBgEIAEoCBIUCgxwcm9qZWN0X25hbWUYBSABKAkSDgoGdGVuYW50GAYgASgJEhMKC3RlbmFudF9uYW1lGAcgASgJEi4KCmV4cGlyZXNfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi0KCWpvaW5lZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiSwoZUHJvamVjdFNlcnZpY2VMaXN0UmVxdWVzdBIuCgVxdWVyeRgBIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RRdWVyeSLFAQoMUHJvamVjdFF1ZXJ5EhsKBHV1aWQYASABKAlCCLpIBXIDsAEBSACIAQESHgoEbmFtZRgCIAEoCUILukgIcgbAs66xAgFIAYgBARIgCgZ0ZW5hbnQYAyABKAlCC7pICHIGkLSusQIBSAKIAQESLgoGbGFiZWxzGAQgASgLMhkubWV0YWxzdGFjay5hcGkudjIuTGFiZWxzSAOIAQFCBwoFX3V1aWRCBwoFX25hbWVCCQoHX3RlbmFudEIJCgdfbGFiZWxzIkoKGlByb2plY3RTZXJ2aWNlTGlzdFJlc3BvbnNlEiwKCHByb2plY3RzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdCI1ChhQcm9qZWN0U2VydmljZUdldFJlcXVlc3QSGQoHcHJvamVjdBgBIAEoCUIIukgFcgOwAQEiSAoZUHJvamVjdFNlcnZpY2VHZXRSZXNwb25zZRIrCgdwcm9qZWN0GAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdCLWAQobUHJvamVjdFNlcnZpY2VDcmVhdGVSZXF1ZXN0EhoKBWxvZ2luGAEgASgJQgu6SAhyBsCzrrECARIZCgRuYW1lGAIgASgJQgu6SAhyBsCzrrECARIgCgtkZXNjcmlwdGlvbhgDIAEoCUILukgIcgbIs66xAgESJAoKYXZhdGFyX3VybBgEIAEoCUILukgIcgbgs66xAgFIAIgBARIpCgZsYWJlbHMYBSABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5MYWJlbHNCDQoLX2F2YXRhcl91cmwiSwocUHJvamVjdFNlcnZpY2VDcmVhdGVSZXNwb25zZRIrCgdwcm9qZWN0GAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdCI4ChtQcm9qZWN0U2VydmljZURlbGV0ZVJlcXVlc3QSGQoHcHJvamVjdBgBIAEoCUIIukgFcgOwAQEiSwocUHJvamVjdFNlcnZpY2VEZWxldGVSZXNwb25zZRIrCgdwcm9qZWN0GAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdCLKAgobUHJvamVjdFNlcnZpY2VVcGRhdGVSZXF1ZXN0EhkKB3Byb2plY3QYASABKAlCCLpIBXIDsAEBEjoKC3VwZGF0ZV9tZXRhGAIgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTWV0YUIGukgDyAEBEh4KBG5hbWUYAyABKAlCC7pICHIGwLOusQIBSACIAQESJQoLZGVzY3JpcHRpb24YBCABKAlCC7pICHIGyLOusQIBSAGIAQESJAoKYXZhdGFyX3VybBgFIAEoCUILukgIcgbgs66xAgFIAogBARI0CgZsYWJlbHMYBiABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5VcGRhdGVMYWJlbHNIA4gBAUIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CDQoLX2F2YXRhcl91cmxCCQoHX2xhYmVscyJLChxQcm9qZWN0U2VydmljZVVwZGF0ZVJlc3BvbnNlEisKB3Byb2plY3QYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0InAKG1Byb2plY3RTZXJ2aWNlSW52aXRlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABARI2CgRyb2xlGAIgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFJvbGVCCLpIBYIBAhABIlAKHFByb2plY3RTZXJ2aWNlSW52aXRlUmVzcG9uc2USMAoGaW52aXRlGAEgASgLMiAubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdEludml0ZSI9CiBQcm9qZWN0U2VydmljZUludml0ZXNMaXN0UmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABASJWCiFQcm9qZWN0U2VydmljZUludml0ZXNMaXN0UmVzcG9uc2USMQoHaW52aXRlcxgBIAMoCzIgLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RJbnZpdGUiMAoeUHJvamVjdFNlcnZpY2VJbnZpdGVHZXRSZXF1ZXN0Eg4KBnNlY3JldBgBIAEoCSJTCh9Qcm9qZWN0U2VydmljZUludml0ZUdldFJlc3BvbnNlEjAKBmludml0ZRgBIAEoCzIgLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RJbnZpdGUiMwohUHJvamVjdFNlcnZpY2VJbnZpdGVBY2NlcHRSZXF1ZXN0Eg4KBnNlY3JldBgBIAEoCSJLCiJQcm9qZWN0U2VydmljZUludml0ZUFjY2VwdFJlc3BvbnNlEg8KB3Byb2plY3QYASABKAkSFAoMcHJvamVjdF9uYW1lGAIgASgJIk4KIVByb2plY3RTZXJ2aWNlSW52aXRlRGVsZXRlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABARIOCgZzZWNyZXQYAiABKAkiJAoiUHJvamVjdFNlcnZpY2VJbnZpdGVEZWxldGVSZXNwb25zZTLdCQoOUHJvamVjdFNlcnZpY2USbQoETGlzdBIsLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlTGlzdFJlcXVlc3QaLS5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUxpc3RSZXNwb25zZSII2PMYAuDzGAISbQoDR2V0EisubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VHZXRSZXF1ZXN0GiwubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VHZXRSZXNwb25zZSILyvMYAwECA+DzGAISdQoGQ3JlYXRlEi4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VDcmVhdGVSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VDcmVhdGVSZXNwb25zZSIKwvMYAgEC4PMYARJ0CgZEZWxldGUSLi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZURlbGV0ZVJlcXVlc3QaLy5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZURlbGV0ZVJlc3BvbnNlIgnK8xgBAeDzGAESdQoGVXBkYXRlEi4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VVcGRhdGVSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VVcGRhdGVSZXNwb25zZSIKyvMYAgEC4PMYARJ0CgZJbnZpdGUSLi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUludml0ZVJlcXVlc3QaLy5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUludml0ZVJlc3BvbnNlIgnK8xgBAeDzGAEShQEKDEludml0ZUFjY2VwdBI0Lm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlSW52aXRlQWNjZXB0UmVxdWVzdBo1Lm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlSW52aXRlQWNjZXB0UmVzcG9uc2UiCNjzGALg8xgBEoYBCgxJbnZpdGVEZWxldGUSNC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUludml0ZURlbGV0ZVJlcXVlc3QaNS5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUludml0ZURlbGV0ZVJlc3BvbnNlIgnK8xgBAeDzGAESgwEKC0ludml0ZXNMaXN0EjMubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVzTGlzdFJlcXVlc3QaNC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUludml0ZXNMaXN0UmVzcG9uc2UiCcrzGAEB4PMYAhJ8CglJbnZpdGVHZXQSMS5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUludml0ZUdldFJlcXVlc3QaMi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUludml0ZUdldFJlc3BvbnNlIgjY8xgC4PMYAkLCAQoVY29tLm1ldGFsc3RhY2suYXBpLnYyQgxQcm9qZWN0UHJvdG9QAVo1Z2l0aHViLmNvbS9tZXRhbC1zdGFjay9hcGkvZ28vbWV0YWxzdGFjay9hcGkvdjI7YXBpdjKiAgNNQViqAhFNZXRhbHN0YWNrLkFwaS5WMsoCEU1ldGFsc3RhY2tcQXBpXFYy4gIdTWV0YWxzdGFja1xBcGlcVjJcR1BCTWV0YWRhdGHqAhNNZXRhbHN0YWNrOjpBcGk6OlYyYgZwcm90bzM", [file_buf_validate_validate, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules]);
/**
* Describes the message metalstack.api.v2.Project.
* Use `create(ProjectSchema)` to create a new message.
*/
export const ProjectSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 0);
-/**
- * Describes the message metalstack.api.v2.ProjectMember.
- * Use `create(ProjectMemberSchema)` to create a new message.
- */
-export const ProjectMemberSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 1);
/**
* Describes the message metalstack.api.v2.ProjectInvite.
* Use `create(ProjectInviteSchema)` to create a new message.
*/
-export const ProjectInviteSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 2);
+export const ProjectInviteSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 1);
/**
* Describes the message metalstack.api.v2.ProjectServiceListRequest.
* Use `create(ProjectServiceListRequestSchema)` to create a new message.
*/
-export const ProjectServiceListRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 3);
+export const ProjectServiceListRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 2);
/**
* Describes the message metalstack.api.v2.ProjectQuery.
* Use `create(ProjectQuerySchema)` to create a new message.
*/
-export const ProjectQuerySchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 4);
+export const ProjectQuerySchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 3);
/**
* Describes the message metalstack.api.v2.ProjectServiceListResponse.
* Use `create(ProjectServiceListResponseSchema)` to create a new message.
*/
-export const ProjectServiceListResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 5);
+export const ProjectServiceListResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 4);
/**
* Describes the message metalstack.api.v2.ProjectServiceGetRequest.
* Use `create(ProjectServiceGetRequestSchema)` to create a new message.
*/
-export const ProjectServiceGetRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 6);
+export const ProjectServiceGetRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 5);
/**
* Describes the message metalstack.api.v2.ProjectServiceGetResponse.
* Use `create(ProjectServiceGetResponseSchema)` to create a new message.
*/
-export const ProjectServiceGetResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 7);
+export const ProjectServiceGetResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 6);
/**
* Describes the message metalstack.api.v2.ProjectServiceCreateRequest.
* Use `create(ProjectServiceCreateRequestSchema)` to create a new message.
*/
-export const ProjectServiceCreateRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 8);
+export const ProjectServiceCreateRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 7);
/**
* Describes the message metalstack.api.v2.ProjectServiceCreateResponse.
* Use `create(ProjectServiceCreateResponseSchema)` to create a new message.
*/
-export const ProjectServiceCreateResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 9);
+export const ProjectServiceCreateResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 8);
/**
* Describes the message metalstack.api.v2.ProjectServiceDeleteRequest.
* Use `create(ProjectServiceDeleteRequestSchema)` to create a new message.
*/
-export const ProjectServiceDeleteRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 10);
+export const ProjectServiceDeleteRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 9);
/**
* Describes the message metalstack.api.v2.ProjectServiceDeleteResponse.
* Use `create(ProjectServiceDeleteResponseSchema)` to create a new message.
*/
-export const ProjectServiceDeleteResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 11);
+export const ProjectServiceDeleteResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 10);
/**
* Describes the message metalstack.api.v2.ProjectServiceUpdateRequest.
* Use `create(ProjectServiceUpdateRequestSchema)` to create a new message.
*/
-export const ProjectServiceUpdateRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 12);
+export const ProjectServiceUpdateRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 11);
/**
* Describes the message metalstack.api.v2.ProjectServiceUpdateResponse.
* Use `create(ProjectServiceUpdateResponseSchema)` to create a new message.
*/
-export const ProjectServiceUpdateResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 13);
+export const ProjectServiceUpdateResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 12);
/**
* Describes the message metalstack.api.v2.ProjectServiceInviteRequest.
* Use `create(ProjectServiceInviteRequestSchema)` to create a new message.
*/
-export const ProjectServiceInviteRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 14);
+export const ProjectServiceInviteRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 13);
/**
* Describes the message metalstack.api.v2.ProjectServiceInviteResponse.
* Use `create(ProjectServiceInviteResponseSchema)` to create a new message.
*/
-export const ProjectServiceInviteResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 15);
+export const ProjectServiceInviteResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 14);
/**
* Describes the message metalstack.api.v2.ProjectServiceInvitesListRequest.
* Use `create(ProjectServiceInvitesListRequestSchema)` to create a new message.
*/
-export const ProjectServiceInvitesListRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 16);
+export const ProjectServiceInvitesListRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 15);
/**
* Describes the message metalstack.api.v2.ProjectServiceInvitesListResponse.
* Use `create(ProjectServiceInvitesListResponseSchema)` to create a new message.
*/
-export const ProjectServiceInvitesListResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 17);
+export const ProjectServiceInvitesListResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 16);
/**
* Describes the message metalstack.api.v2.ProjectServiceInviteGetRequest.
* Use `create(ProjectServiceInviteGetRequestSchema)` to create a new message.
*/
-export const ProjectServiceInviteGetRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 18);
+export const ProjectServiceInviteGetRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 17);
/**
* Describes the message metalstack.api.v2.ProjectServiceInviteGetResponse.
* Use `create(ProjectServiceInviteGetResponseSchema)` to create a new message.
*/
-export const ProjectServiceInviteGetResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 19);
-/**
- * Describes the message metalstack.api.v2.ProjectServiceLeaveRequest.
- * Use `create(ProjectServiceLeaveRequestSchema)` to create a new message.
- */
-export const ProjectServiceLeaveRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 20);
-/**
- * Describes the message metalstack.api.v2.ProjectServiceLeaveResponse.
- * Use `create(ProjectServiceLeaveResponseSchema)` to create a new message.
- */
-export const ProjectServiceLeaveResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 21);
-/**
- * Describes the message metalstack.api.v2.ProjectServiceAddMemberRequest.
- * Use `create(ProjectServiceAddMemberRequestSchema)` to create a new message.
- */
-export const ProjectServiceAddMemberRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 22);
-/**
- * Describes the message metalstack.api.v2.ProjectServiceAddMemberResponse.
- * Use `create(ProjectServiceAddMemberResponseSchema)` to create a new message.
- */
-export const ProjectServiceAddMemberResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 23);
-/**
- * Describes the message metalstack.api.v2.ProjectServiceRemoveMemberRequest.
- * Use `create(ProjectServiceRemoveMemberRequestSchema)` to create a new message.
- */
-export const ProjectServiceRemoveMemberRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 24);
-/**
- * Describes the message metalstack.api.v2.ProjectServiceRemoveMemberResponse.
- * Use `create(ProjectServiceRemoveMemberResponseSchema)` to create a new message.
- */
-export const ProjectServiceRemoveMemberResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 25);
-/**
- * Describes the message metalstack.api.v2.ProjectServiceUpdateMemberRequest.
- * Use `create(ProjectServiceUpdateMemberRequestSchema)` to create a new message.
- */
-export const ProjectServiceUpdateMemberRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 26);
-/**
- * Describes the message metalstack.api.v2.ProjectServiceUpdateMemberResponse.
- * Use `create(ProjectServiceUpdateMemberResponseSchema)` to create a new message.
- */
-export const ProjectServiceUpdateMemberResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 27);
+export const ProjectServiceInviteGetResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 18);
/**
* Describes the message metalstack.api.v2.ProjectServiceInviteAcceptRequest.
* Use `create(ProjectServiceInviteAcceptRequestSchema)` to create a new message.
*/
-export const ProjectServiceInviteAcceptRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 28);
+export const ProjectServiceInviteAcceptRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 19);
/**
* Describes the message metalstack.api.v2.ProjectServiceInviteAcceptResponse.
* Use `create(ProjectServiceInviteAcceptResponseSchema)` to create a new message.
*/
-export const ProjectServiceInviteAcceptResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 29);
+export const ProjectServiceInviteAcceptResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 20);
/**
* Describes the message metalstack.api.v2.ProjectServiceInviteDeleteRequest.
* Use `create(ProjectServiceInviteDeleteRequestSchema)` to create a new message.
*/
-export const ProjectServiceInviteDeleteRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 30);
+export const ProjectServiceInviteDeleteRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 21);
/**
* Describes the message metalstack.api.v2.ProjectServiceInviteDeleteResponse.
* Use `create(ProjectServiceInviteDeleteResponseSchema)` to create a new message.
*/
-export const ProjectServiceInviteDeleteResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 31);
+export const ProjectServiceInviteDeleteResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 22);
/**
* ProjectService provides project management operations.
*
diff --git a/js/metalstack/api/v2/project_pb.ts b/js/metalstack/api/v2/project_pb.ts
index 2a5d5daf..10c4e014 100644
--- a/js/metalstack/api/v2/project_pb.ts
+++ b/js/metalstack/api/v2/project_pb.ts
@@ -16,7 +16,7 @@ import type { Message } from "@bufbuild/protobuf";
* Describes the file metalstack/api/v2/project.proto.
*/
export const file_metalstack_api_v2_project: GenFile = /*@__PURE__*/
- fileDesc("Ch9tZXRhbHN0YWNrL2FwaS92Mi9wcm9qZWN0LnByb3RvEhFtZXRhbHN0YWNrLmFwaS52MiLAAQoHUHJvamVjdBIMCgR1dWlkGAEgASgJEiUKBG1ldGEYAiABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhEhkKBG5hbWUYAyABKAlCC7pICHIGwLOusQIBEiAKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECARIOCgZ0ZW5hbnQYBSABKAkSJAoKYXZhdGFyX3VybBgGIAEoCUILukgIcgbgs66xAgFIAIgBAUINCgtfYXZhdGFyX3VybCLIAQoNUHJvamVjdE1lbWJlchIKCgJpZBgBIAEoCRI2CgRyb2xlGAIgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFJvbGVCCLpIBYIBAhABEhwKFGluaGVyaXRlZF9tZW1iZXJzaGlwGAMgASgIEi4KCmNyZWF0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiUKBG1ldGEYBSABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhIpICCg1Qcm9qZWN0SW52aXRlEg4KBnNlY3JldBgBIAEoCRIPCgdwcm9qZWN0GAIgASgJEjYKBHJvbGUYAyABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0Um9sZUIIukgFggECEAESDgoGam9pbmVkGAQgASgIEhQKDHByb2plY3RfbmFtZRgFIAEoCRIOCgZ0ZW5hbnQYBiABKAkSEwoLdGVuYW50X25hbWUYByABKAkSLgoKZXhwaXJlc19hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLQoJam9pbmVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCJLChlQcm9qZWN0U2VydmljZUxpc3RSZXF1ZXN0Ei4KBXF1ZXJ5GAEgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFF1ZXJ5IsUBCgxQcm9qZWN0UXVlcnkSGwoEdXVpZBgBIAEoCUIIukgFcgOwAQFIAIgBARIeCgRuYW1lGAIgASgJQgu6SAhyBsCzrrECAUgBiAEBEiAKBnRlbmFudBgDIAEoCUILukgIcgaQtK6xAgFIAogBARIuCgZsYWJlbHMYBCABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5MYWJlbHNIA4gBAUIHCgVfdXVpZEIHCgVfbmFtZUIJCgdfdGVuYW50QgkKB19sYWJlbHMiSgoaUHJvamVjdFNlcnZpY2VMaXN0UmVzcG9uc2USLAoIcHJvamVjdHMYASADKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0IjUKGFByb2plY3RTZXJ2aWNlR2V0UmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABASKDAQoZUHJvamVjdFNlcnZpY2VHZXRSZXNwb25zZRIrCgdwcm9qZWN0GAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdBI5Cg9wcm9qZWN0X21lbWJlcnMYAiADKAsyIC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0TWVtYmVyItYBChtQcm9qZWN0U2VydmljZUNyZWF0ZVJlcXVlc3QSGgoFbG9naW4YASABKAlCC7pICHIGwLOusQIBEhkKBG5hbWUYAiABKAlCC7pICHIGwLOusQIBEiAKC2Rlc2NyaXB0aW9uGAMgASgJQgu6SAhyBsizrrECARIkCgphdmF0YXJfdXJsGAQgASgJQgu6SAhyBuCzrrECAUgAiAEBEikKBmxhYmVscxgFIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0INCgtfYXZhdGFyX3VybCJLChxQcm9qZWN0U2VydmljZUNyZWF0ZVJlc3BvbnNlEisKB3Byb2plY3QYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0IjgKG1Byb2plY3RTZXJ2aWNlRGVsZXRlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABASJLChxQcm9qZWN0U2VydmljZURlbGV0ZVJlc3BvbnNlEisKB3Byb2plY3QYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0IsoCChtQcm9qZWN0U2VydmljZVVwZGF0ZVJlcXVlc3QSGQoHcHJvamVjdBgBIAEoCUIIukgFcgOwAQESOgoLdXBkYXRlX21ldGEYAiABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5VcGRhdGVNZXRhQga6SAPIAQESHgoEbmFtZRgDIAEoCUILukgIcgbAs66xAgFIAIgBARIlCgtkZXNjcmlwdGlvbhgEIAEoCUILukgIcgbIs66xAgFIAYgBARIkCgphdmF0YXJfdXJsGAUgASgJQgu6SAhyBuCzrrECAUgCiAEBEjQKBmxhYmVscxgGIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZUxhYmVsc0gDiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkINCgtfYXZhdGFyX3VybEIJCgdfbGFiZWxzIksKHFByb2plY3RTZXJ2aWNlVXBkYXRlUmVzcG9uc2USKwoHcHJvamVjdBgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3QicAobUHJvamVjdFNlcnZpY2VJbnZpdGVSZXF1ZXN0EhkKB3Byb2plY3QYASABKAlCCLpIBXIDsAEBEjYKBHJvbGUYAiABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0Um9sZUIIukgFggECEAEiUAocUHJvamVjdFNlcnZpY2VJbnZpdGVSZXNwb25zZRIwCgZpbnZpdGUYASABKAsyIC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0SW52aXRlIj0KIFByb2plY3RTZXJ2aWNlSW52aXRlc0xpc3RSZXF1ZXN0EhkKB3Byb2plY3QYASABKAlCCLpIBXIDsAEBIlYKIVByb2plY3RTZXJ2aWNlSW52aXRlc0xpc3RSZXNwb25zZRIxCgdpbnZpdGVzGAEgAygLMiAubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdEludml0ZSIwCh5Qcm9qZWN0U2VydmljZUludml0ZUdldFJlcXVlc3QSDgoGc2VjcmV0GAEgASgJIlMKH1Byb2plY3RTZXJ2aWNlSW52aXRlR2V0UmVzcG9uc2USMAoGaW52aXRlGAEgASgLMiAubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdEludml0ZSI3ChpQcm9qZWN0U2VydmljZUxlYXZlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABASIdChtQcm9qZWN0U2VydmljZUxlYXZlUmVzcG9uc2UikAEKHlByb2plY3RTZXJ2aWNlQWRkTWVtYmVyUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABARIbCgZtZW1iZXIYAiABKAlCC7pICHIGkLSusQIBEjYKBHJvbGUYAyABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0Um9sZUIIukgFggECEAEiWQofUHJvamVjdFNlcnZpY2VBZGRNZW1iZXJSZXNwb25zZRI2Cg5wcm9qZWN0X21lbWJlchgBIAEoDjIeLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RSb2xlIk4KIVByb2plY3RTZXJ2aWNlUmVtb3ZlTWVtYmVyUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABARIOCgZtZW1iZXIYAiABKAkiJAoiUHJvamVjdFNlcnZpY2VSZW1vdmVNZW1iZXJSZXNwb25zZSKGAQohUHJvamVjdFNlcnZpY2VVcGRhdGVNZW1iZXJSZXF1ZXN0EhkKB3Byb2plY3QYASABKAlCCLpIBXIDsAEBEg4KBm1lbWJlchgCIAEoCRI2CgRyb2xlGAMgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFJvbGVCCLpIBYIBAhABIl4KIlByb2plY3RTZXJ2aWNlVXBkYXRlTWVtYmVyUmVzcG9uc2USOAoOcHJvamVjdF9tZW1iZXIYASABKAsyIC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0TWVtYmVyIjMKIVByb2plY3RTZXJ2aWNlSW52aXRlQWNjZXB0UmVxdWVzdBIOCgZzZWNyZXQYASABKAkiSwoiUHJvamVjdFNlcnZpY2VJbnZpdGVBY2NlcHRSZXNwb25zZRIPCgdwcm9qZWN0GAEgASgJEhQKDHByb2plY3RfbmFtZRgCIAEoCSJOCiFQcm9qZWN0U2VydmljZUludml0ZURlbGV0ZVJlcXVlc3QSGQoHcHJvamVjdBgBIAEoCUIIukgFcgOwAQESDgoGc2VjcmV0GAIgASgJIiQKIlByb2plY3RTZXJ2aWNlSW52aXRlRGVsZXRlUmVzcG9uc2Uy4Q0KDlByb2plY3RTZXJ2aWNlEm0KBExpc3QSLC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUxpc3RSZXF1ZXN0Gi0ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VMaXN0UmVzcG9uc2UiCNjzGALg8xgCEm0KA0dldBIrLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlR2V0UmVxdWVzdBosLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlR2V0UmVzcG9uc2UiC8rzGAMBAgPg8xgCEnUKBkNyZWF0ZRIuLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlQ3JlYXRlUmVxdWVzdBovLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlQ3JlYXRlUmVzcG9uc2UiCsLzGAIBAuDzGAESdAoGRGVsZXRlEi4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VEZWxldGVSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VEZWxldGVSZXNwb25zZSIJyvMYAQHg8xgBEnUKBlVwZGF0ZRIuLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlVXBkYXRlUmVxdWVzdBovLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlVXBkYXRlUmVzcG9uc2UiCsrzGAIBAuDzGAEScQoFTGVhdmUSLS5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUxlYXZlUmVxdWVzdBouLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlTGVhdmVSZXNwb25zZSIJyvMYAQPg8xgBEn0KCUFkZE1lbWJlchIxLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlQWRkTWVtYmVyUmVxdWVzdBoyLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlQWRkTWVtYmVyUmVzcG9uc2UiCcrzGAEB4PMYARKGAQoMUmVtb3ZlTWVtYmVyEjQubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VSZW1vdmVNZW1iZXJSZXF1ZXN0GjUubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VSZW1vdmVNZW1iZXJSZXNwb25zZSIJyvMYAQHg8xgBEoYBCgxVcGRhdGVNZW1iZXISNC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZVVwZGF0ZU1lbWJlclJlcXVlc3QaNS5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZVVwZGF0ZU1lbWJlclJlc3BvbnNlIgnK8xgBAeDzGAESdAoGSW52aXRlEi4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVSZXNwb25zZSIJyvMYAQHg8xgBEoUBCgxJbnZpdGVBY2NlcHQSNC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUludml0ZUFjY2VwdFJlcXVlc3QaNS5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUludml0ZUFjY2VwdFJlc3BvbnNlIgjY8xgC4PMYARKGAQoMSW52aXRlRGVsZXRlEjQubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVEZWxldGVSZXF1ZXN0GjUubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVEZWxldGVSZXNwb25zZSIJyvMYAQHg8xgBEoMBCgtJbnZpdGVzTGlzdBIzLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlSW52aXRlc0xpc3RSZXF1ZXN0GjQubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVzTGlzdFJlc3BvbnNlIgnK8xgBAeDzGAISfAoJSW52aXRlR2V0EjEubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVHZXRSZXF1ZXN0GjIubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVHZXRSZXNwb25zZSII2PMYAuDzGAJCwgEKFWNvbS5tZXRhbHN0YWNrLmFwaS52MkIMUHJvamVjdFByb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules]);
+ fileDesc("Ch9tZXRhbHN0YWNrL2FwaS92Mi9wcm9qZWN0LnByb3RvEhFtZXRhbHN0YWNrLmFwaS52MiLAAQoHUHJvamVjdBIMCgR1dWlkGAEgASgJEiUKBG1ldGEYAiABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhEhkKBG5hbWUYAyABKAlCC7pICHIGwLOusQIBEiAKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECARIOCgZ0ZW5hbnQYBSABKAkSJAoKYXZhdGFyX3VybBgGIAEoCUILukgIcgbgs66xAgFIAIgBAUINCgtfYXZhdGFyX3VybCKSAgoNUHJvamVjdEludml0ZRIOCgZzZWNyZXQYASABKAkSDwoHcHJvamVjdBgCIAEoCRI2CgRyb2xlGAMgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFJvbGVCCLpIBYIBAhABEg4KBmpvaW5lZBgEIAEoCBIUCgxwcm9qZWN0X25hbWUYBSABKAkSDgoGdGVuYW50GAYgASgJEhMKC3RlbmFudF9uYW1lGAcgASgJEi4KCmV4cGlyZXNfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi0KCWpvaW5lZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiSwoZUHJvamVjdFNlcnZpY2VMaXN0UmVxdWVzdBIuCgVxdWVyeRgBIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RRdWVyeSLFAQoMUHJvamVjdFF1ZXJ5EhsKBHV1aWQYASABKAlCCLpIBXIDsAEBSACIAQESHgoEbmFtZRgCIAEoCUILukgIcgbAs66xAgFIAYgBARIgCgZ0ZW5hbnQYAyABKAlCC7pICHIGkLSusQIBSAKIAQESLgoGbGFiZWxzGAQgASgLMhkubWV0YWxzdGFjay5hcGkudjIuTGFiZWxzSAOIAQFCBwoFX3V1aWRCBwoFX25hbWVCCQoHX3RlbmFudEIJCgdfbGFiZWxzIkoKGlByb2plY3RTZXJ2aWNlTGlzdFJlc3BvbnNlEiwKCHByb2plY3RzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdCI1ChhQcm9qZWN0U2VydmljZUdldFJlcXVlc3QSGQoHcHJvamVjdBgBIAEoCUIIukgFcgOwAQEiSAoZUHJvamVjdFNlcnZpY2VHZXRSZXNwb25zZRIrCgdwcm9qZWN0GAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdCLWAQobUHJvamVjdFNlcnZpY2VDcmVhdGVSZXF1ZXN0EhoKBWxvZ2luGAEgASgJQgu6SAhyBsCzrrECARIZCgRuYW1lGAIgASgJQgu6SAhyBsCzrrECARIgCgtkZXNjcmlwdGlvbhgDIAEoCUILukgIcgbIs66xAgESJAoKYXZhdGFyX3VybBgEIAEoCUILukgIcgbgs66xAgFIAIgBARIpCgZsYWJlbHMYBSABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5MYWJlbHNCDQoLX2F2YXRhcl91cmwiSwocUHJvamVjdFNlcnZpY2VDcmVhdGVSZXNwb25zZRIrCgdwcm9qZWN0GAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdCI4ChtQcm9qZWN0U2VydmljZURlbGV0ZVJlcXVlc3QSGQoHcHJvamVjdBgBIAEoCUIIukgFcgOwAQEiSwocUHJvamVjdFNlcnZpY2VEZWxldGVSZXNwb25zZRIrCgdwcm9qZWN0GAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdCLKAgobUHJvamVjdFNlcnZpY2VVcGRhdGVSZXF1ZXN0EhkKB3Byb2plY3QYASABKAlCCLpIBXIDsAEBEjoKC3VwZGF0ZV9tZXRhGAIgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTWV0YUIGukgDyAEBEh4KBG5hbWUYAyABKAlCC7pICHIGwLOusQIBSACIAQESJQoLZGVzY3JpcHRpb24YBCABKAlCC7pICHIGyLOusQIBSAGIAQESJAoKYXZhdGFyX3VybBgFIAEoCUILukgIcgbgs66xAgFIAogBARI0CgZsYWJlbHMYBiABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5VcGRhdGVMYWJlbHNIA4gBAUIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CDQoLX2F2YXRhcl91cmxCCQoHX2xhYmVscyJLChxQcm9qZWN0U2VydmljZVVwZGF0ZVJlc3BvbnNlEisKB3Byb2plY3QYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0InAKG1Byb2plY3RTZXJ2aWNlSW52aXRlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABARI2CgRyb2xlGAIgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFJvbGVCCLpIBYIBAhABIlAKHFByb2plY3RTZXJ2aWNlSW52aXRlUmVzcG9uc2USMAoGaW52aXRlGAEgASgLMiAubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdEludml0ZSI9CiBQcm9qZWN0U2VydmljZUludml0ZXNMaXN0UmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABASJWCiFQcm9qZWN0U2VydmljZUludml0ZXNMaXN0UmVzcG9uc2USMQoHaW52aXRlcxgBIAMoCzIgLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RJbnZpdGUiMAoeUHJvamVjdFNlcnZpY2VJbnZpdGVHZXRSZXF1ZXN0Eg4KBnNlY3JldBgBIAEoCSJTCh9Qcm9qZWN0U2VydmljZUludml0ZUdldFJlc3BvbnNlEjAKBmludml0ZRgBIAEoCzIgLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RJbnZpdGUiMwohUHJvamVjdFNlcnZpY2VJbnZpdGVBY2NlcHRSZXF1ZXN0Eg4KBnNlY3JldBgBIAEoCSJLCiJQcm9qZWN0U2VydmljZUludml0ZUFjY2VwdFJlc3BvbnNlEg8KB3Byb2plY3QYASABKAkSFAoMcHJvamVjdF9uYW1lGAIgASgJIk4KIVByb2plY3RTZXJ2aWNlSW52aXRlRGVsZXRlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABARIOCgZzZWNyZXQYAiABKAkiJAoiUHJvamVjdFNlcnZpY2VJbnZpdGVEZWxldGVSZXNwb25zZTLdCQoOUHJvamVjdFNlcnZpY2USbQoETGlzdBIsLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlTGlzdFJlcXVlc3QaLS5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUxpc3RSZXNwb25zZSII2PMYAuDzGAISbQoDR2V0EisubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VHZXRSZXF1ZXN0GiwubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VHZXRSZXNwb25zZSILyvMYAwECA+DzGAISdQoGQ3JlYXRlEi4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VDcmVhdGVSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VDcmVhdGVSZXNwb25zZSIKwvMYAgEC4PMYARJ0CgZEZWxldGUSLi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZURlbGV0ZVJlcXVlc3QaLy5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZURlbGV0ZVJlc3BvbnNlIgnK8xgBAeDzGAESdQoGVXBkYXRlEi4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VVcGRhdGVSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VVcGRhdGVSZXNwb25zZSIKyvMYAgEC4PMYARJ0CgZJbnZpdGUSLi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUludml0ZVJlcXVlc3QaLy5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUludml0ZVJlc3BvbnNlIgnK8xgBAeDzGAEShQEKDEludml0ZUFjY2VwdBI0Lm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlSW52aXRlQWNjZXB0UmVxdWVzdBo1Lm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlSW52aXRlQWNjZXB0UmVzcG9uc2UiCNjzGALg8xgBEoYBCgxJbnZpdGVEZWxldGUSNC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUludml0ZURlbGV0ZVJlcXVlc3QaNS5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUludml0ZURlbGV0ZVJlc3BvbnNlIgnK8xgBAeDzGAESgwEKC0ludml0ZXNMaXN0EjMubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVzTGlzdFJlcXVlc3QaNC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUludml0ZXNMaXN0UmVzcG9uc2UiCcrzGAEB4PMYAhJ8CglJbnZpdGVHZXQSMS5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUludml0ZUdldFJlcXVlc3QaMi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUludml0ZUdldFJlc3BvbnNlIgjY8xgC4PMYAkLCAQoVY29tLm1ldGFsc3RhY2suYXBpLnYyQgxQcm9qZWN0UHJvdG9QAVo1Z2l0aHViLmNvbS9tZXRhbC1zdGFjay9hcGkvZ28vbWV0YWxzdGFjay9hcGkvdjI7YXBpdjKiAgNNQViqAhFNZXRhbHN0YWNrLkFwaS5WMsoCEU1ldGFsc3RhY2tcQXBpXFYy4gIdTWV0YWxzdGFja1xBcGlcVjJcR1BCTWV0YWRhdGHqAhNNZXRhbHN0YWNrOjpBcGk6OlYyYgZwcm90bzM", [file_buf_validate_validate, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules]);
/**
* Project defines a group of resources belonging to a tenant.
@@ -75,57 +75,6 @@ export type Project = Message<"metalstack.api.v2.Project"> & {
export const ProjectSchema: GenMessage = /*@__PURE__*/
messageDesc(file_metalstack_api_v2_project, 0);
-/**
- * ProjectMember defines a user that participates in a project.
- *
- * @generated from message metalstack.api.v2.ProjectMember
- */
-export type ProjectMember = Message<"metalstack.api.v2.ProjectMember"> & {
- /**
- * Id is the user id of the member.
- *
- * @generated from field: string id = 1;
- */
- id: string;
-
- /**
- * Role is the role of the member.
- *
- * @generated from field: metalstack.api.v2.ProjectRole role = 2;
- */
- role: ProjectRole;
-
- /**
- * InheritedMembership indicates that this member has implicit permissions on the project through his membership within the tenant.
- * This member does not have direct project membership but gains permissions on this project from the role he has in the tenant.
- * Inherited memberships are not included in member lists for users with guest permission but only for direct tenant members.
- *
- * @generated from field: bool inherited_membership = 3;
- */
- inheritedMembership: boolean;
-
- /**
- * CreatedAt the date when the member was added to the project.
- *
- * @generated from field: google.protobuf.Timestamp created_at = 4;
- */
- createdAt?: Timestamp | undefined;
-
- /**
- * Meta for this project member.
- *
- * @generated from field: metalstack.api.v2.Meta meta = 5;
- */
- meta?: Meta | undefined;
-};
-
-/**
- * Describes the message metalstack.api.v2.ProjectMember.
- * Use `create(ProjectMemberSchema)` to create a new message.
- */
-export const ProjectMemberSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_project, 1);
-
/**
* ProjectInvite defines invite to project.
*
@@ -201,7 +150,7 @@ export type ProjectInvite = Message<"metalstack.api.v2.ProjectInvite"> & {
* Use `create(ProjectInviteSchema)` to create a new message.
*/
export const ProjectInviteSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_project, 2);
+ messageDesc(file_metalstack_api_v2_project, 1);
/**
* ProjectServiceListRequest is the request payload to list all projects.
@@ -222,7 +171,7 @@ export type ProjectServiceListRequest = Message<"metalstack.api.v2.ProjectServic
* Use `create(ProjectServiceListRequestSchema)` to create a new message.
*/
export const ProjectServiceListRequestSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_project, 3);
+ messageDesc(file_metalstack_api_v2_project, 2);
/**
* ProjectQuery is used to search projects.
@@ -264,7 +213,7 @@ export type ProjectQuery = Message<"metalstack.api.v2.ProjectQuery"> & {
* Use `create(ProjectQuerySchema)` to create a new message.
*/
export const ProjectQuerySchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_project, 4);
+ messageDesc(file_metalstack_api_v2_project, 3);
/**
* ProjectServiceListResponse is the response payload to list all projects.
@@ -285,7 +234,7 @@ export type ProjectServiceListResponse = Message<"metalstack.api.v2.ProjectServi
* Use `create(ProjectServiceListResponseSchema)` to create a new message.
*/
export const ProjectServiceListResponseSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_project, 5);
+ messageDesc(file_metalstack_api_v2_project, 4);
/**
* ProjectServiceGetRequest is the request payload to get a project.
@@ -306,7 +255,7 @@ export type ProjectServiceGetRequest = Message<"metalstack.api.v2.ProjectService
* Use `create(ProjectServiceGetRequestSchema)` to create a new message.
*/
export const ProjectServiceGetRequestSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_project, 6);
+ messageDesc(file_metalstack_api_v2_project, 5);
/**
* ProjectServiceGetResponse is the response payload to get a projects.
@@ -320,13 +269,6 @@ export type ProjectServiceGetResponse = Message<"metalstack.api.v2.ProjectServic
* @generated from field: metalstack.api.v2.Project project = 1;
*/
project?: Project | undefined;
-
- /**
- * ProjectMembers in this project, projects guests will only see direct project members and not implicit memberships from tenant permissions.
- *
- * @generated from field: repeated metalstack.api.v2.ProjectMember project_members = 2;
- */
- projectMembers: ProjectMember[];
};
/**
@@ -334,7 +276,7 @@ export type ProjectServiceGetResponse = Message<"metalstack.api.v2.ProjectServic
* Use `create(ProjectServiceGetResponseSchema)` to create a new message.
*/
export const ProjectServiceGetResponseSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_project, 7);
+ messageDesc(file_metalstack_api_v2_project, 6);
/**
* ProjectServiceCreateRequest is the request payload to Create a project.
@@ -384,7 +326,7 @@ export type ProjectServiceCreateRequest = Message<"metalstack.api.v2.ProjectServ
* Use `create(ProjectServiceCreateRequestSchema)` to create a new message.
*/
export const ProjectServiceCreateRequestSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_project, 8);
+ messageDesc(file_metalstack_api_v2_project, 7);
/**
* ProjectServiceCreateResponse is the response payload of creation of a project.
@@ -405,7 +347,7 @@ export type ProjectServiceCreateResponse = Message<"metalstack.api.v2.ProjectSer
* Use `create(ProjectServiceCreateResponseSchema)` to create a new message.
*/
export const ProjectServiceCreateResponseSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_project, 9);
+ messageDesc(file_metalstack_api_v2_project, 8);
/**
* ProjectServiceDeleteRequest is the request payload to delete a project.
@@ -426,7 +368,7 @@ export type ProjectServiceDeleteRequest = Message<"metalstack.api.v2.ProjectServ
* Use `create(ProjectServiceDeleteRequestSchema)` to create a new message.
*/
export const ProjectServiceDeleteRequestSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_project, 10);
+ messageDesc(file_metalstack_api_v2_project, 9);
/**
* ProjectServiceDeleteResponse is the response payload to delete a project.
@@ -447,7 +389,7 @@ export type ProjectServiceDeleteResponse = Message<"metalstack.api.v2.ProjectSer
* Use `create(ProjectServiceDeleteResponseSchema)` to create a new message.
*/
export const ProjectServiceDeleteResponseSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_project, 11);
+ messageDesc(file_metalstack_api_v2_project, 10);
/**
* ProjectServiceUpdateRequest is the request payload to update a project.
@@ -503,7 +445,7 @@ export type ProjectServiceUpdateRequest = Message<"metalstack.api.v2.ProjectServ
* Use `create(ProjectServiceUpdateRequestSchema)` to create a new message.
*/
export const ProjectServiceUpdateRequestSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_project, 12);
+ messageDesc(file_metalstack_api_v2_project, 11);
/**
* ProjectServiceUpdateResponse is the response payload to update a project.
@@ -524,7 +466,7 @@ export type ProjectServiceUpdateResponse = Message<"metalstack.api.v2.ProjectSer
* Use `create(ProjectServiceUpdateResponseSchema)` to create a new message.
*/
export const ProjectServiceUpdateResponseSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_project, 13);
+ messageDesc(file_metalstack_api_v2_project, 12);
/**
* ProjectServiceInviteRequest is used to invite a member to a project.
@@ -552,7 +494,7 @@ export type ProjectServiceInviteRequest = Message<"metalstack.api.v2.ProjectServ
* Use `create(ProjectServiceInviteRequestSchema)` to create a new message.
*/
export const ProjectServiceInviteRequestSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_project, 14);
+ messageDesc(file_metalstack_api_v2_project, 13);
/**
* ProjectServiceInviteResponse is the response payload to a invite member request.
@@ -575,7 +517,7 @@ export type ProjectServiceInviteResponse = Message<"metalstack.api.v2.ProjectSer
* Use `create(ProjectServiceInviteResponseSchema)` to create a new message.
*/
export const ProjectServiceInviteResponseSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_project, 15);
+ messageDesc(file_metalstack_api_v2_project, 14);
/**
* ProjectServiceInvitesListRequest is the request payload to a list invites request.
@@ -596,7 +538,7 @@ export type ProjectServiceInvitesListRequest = Message<"metalstack.api.v2.Projec
* Use `create(ProjectServiceInvitesListRequestSchema)` to create a new message.
*/
export const ProjectServiceInvitesListRequestSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_project, 16);
+ messageDesc(file_metalstack_api_v2_project, 15);
/**
* ProjectServiceInvitesListResponse is the response payload to a list invites request.
@@ -617,7 +559,7 @@ export type ProjectServiceInvitesListResponse = Message<"metalstack.api.v2.Proje
* Use `create(ProjectServiceInvitesListResponseSchema)` to create a new message.
*/
export const ProjectServiceInvitesListResponseSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_project, 17);
+ messageDesc(file_metalstack_api_v2_project, 16);
/**
* ProjectServiceInviteGetRequest is the request payload to get a invite.
@@ -638,7 +580,7 @@ export type ProjectServiceInviteGetRequest = Message<"metalstack.api.v2.ProjectS
* Use `create(ProjectServiceInviteGetRequestSchema)` to create a new message.
*/
export const ProjectServiceInviteGetRequestSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_project, 18);
+ messageDesc(file_metalstack_api_v2_project, 17);
/**
* ProjectServiceInviteGetResponse is the response payload to a get invite request.
@@ -659,198 +601,7 @@ export type ProjectServiceInviteGetResponse = Message<"metalstack.api.v2.Project
* Use `create(ProjectServiceInviteGetResponseSchema)` to create a new message.
*/
export const ProjectServiceInviteGetResponseSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_project, 19);
-
-/**
- * ProjectServiceLeaveRequest is used to leave a project.
- *
- * @generated from message metalstack.api.v2.ProjectServiceLeaveRequest
- */
-export type ProjectServiceLeaveRequest = Message<"metalstack.api.v2.ProjectServiceLeaveRequest"> & {
- /**
- * Project is the uuid of the project.
- *
- * @generated from field: string project = 1;
- */
- project: string;
-};
-
-/**
- * Describes the message metalstack.api.v2.ProjectServiceLeaveRequest.
- * Use `create(ProjectServiceLeaveRequestSchema)` to create a new message.
- */
-export const ProjectServiceLeaveRequestSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_project, 20);
-
-/**
- * ProjectServiceLeaveResponse is the response payload to a leave project request.
- *
- * @generated from message metalstack.api.v2.ProjectServiceLeaveResponse
- */
-export type ProjectServiceLeaveResponse = Message<"metalstack.api.v2.ProjectServiceLeaveResponse"> & {
-};
-
-/**
- * Describes the message metalstack.api.v2.ProjectServiceLeaveResponse.
- * Use `create(ProjectServiceLeaveResponseSchema)` to create a new message.
- */
-export const ProjectServiceLeaveResponseSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_project, 21);
-
-/**
- * ProjectServiceAddMemberRequest is the request payload for adding a member to a project.
- *
- * @generated from message metalstack.api.v2.ProjectServiceAddMemberRequest
- */
-export type ProjectServiceAddMemberRequest = Message<"metalstack.api.v2.ProjectServiceAddMemberRequest"> & {
- /**
- * Project is the uuid of the project.
- *
- * @generated from field: string project = 1;
- */
- project: string;
-
- /**
- * Login of the member to add.
- *
- * @generated from field: string member = 2;
- */
- member: string;
-
- /**
- * Role to assign to the new member.
- *
- * @generated from field: metalstack.api.v2.ProjectRole role = 3;
- */
- role: ProjectRole;
-};
-
-/**
- * Describes the message metalstack.api.v2.ProjectServiceAddMemberRequest.
- * Use `create(ProjectServiceAddMemberRequestSchema)` to create a new message.
- */
-export const ProjectServiceAddMemberRequestSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_project, 22);
-
-/**
- * ProjectServiceAddMemberResponse is the response payload for the add member request.
- *
- * @generated from message metalstack.api.v2.ProjectServiceAddMemberResponse
- */
-export type ProjectServiceAddMemberResponse = Message<"metalstack.api.v2.ProjectServiceAddMemberResponse"> & {
- /**
- * ProjectRole is the added project member.
- *
- * @generated from field: metalstack.api.v2.ProjectRole project_member = 1;
- */
- projectMember: ProjectRole;
-};
-
-/**
- * Describes the message metalstack.api.v2.ProjectServiceAddMemberResponse.
- * Use `create(ProjectServiceAddMemberResponseSchema)` to create a new message.
- */
-export const ProjectServiceAddMemberResponseSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_project, 23);
-
-/**
- * ProjectServiceRemoveMemberRequest is used to remove a member from a project.
- *
- * @generated from message metalstack.api.v2.ProjectServiceRemoveMemberRequest
- */
-export type ProjectServiceRemoveMemberRequest = Message<"metalstack.api.v2.ProjectServiceRemoveMemberRequest"> & {
- /**
- * Project is the uuid of the project.
- *
- * @generated from field: string project = 1;
- */
- project: string;
-
- /**
- * Member is the id of the member to remove from this project.
- *
- * @generated from field: string member = 2;
- */
- member: string;
-};
-
-/**
- * Describes the message metalstack.api.v2.ProjectServiceRemoveMemberRequest.
- * Use `create(ProjectServiceRemoveMemberRequestSchema)` to create a new message.
- */
-export const ProjectServiceRemoveMemberRequestSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_project, 24);
-
-/**
- * ProjectServiceRemoveMemberResponse is the response payload to a remove member request.
- *
- * @generated from message metalstack.api.v2.ProjectServiceRemoveMemberResponse
- */
-export type ProjectServiceRemoveMemberResponse = Message<"metalstack.api.v2.ProjectServiceRemoveMemberResponse"> & {
-};
-
-/**
- * Describes the message metalstack.api.v2.ProjectServiceRemoveMemberResponse.
- * Use `create(ProjectServiceRemoveMemberResponseSchema)` to create a new message.
- */
-export const ProjectServiceRemoveMemberResponseSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_project, 25);
-
-/**
- * ProjectServiceUpdateMemberRequest is used to update a member of a project.
- *
- * @generated from message metalstack.api.v2.ProjectServiceUpdateMemberRequest
- */
-export type ProjectServiceUpdateMemberRequest = Message<"metalstack.api.v2.ProjectServiceUpdateMemberRequest"> & {
- /**
- * Project is the uuid of the project.
- *
- * @generated from field: string project = 1;
- */
- project: string;
-
- /**
- * Member is the id of the member to remove from this project.
- *
- * @generated from field: string member = 2;
- */
- member: string;
-
- /**
- * Role is the role in this project the user will get after the update.
- *
- * @generated from field: metalstack.api.v2.ProjectRole role = 3;
- */
- role: ProjectRole;
-};
-
-/**
- * Describes the message metalstack.api.v2.ProjectServiceUpdateMemberRequest.
- * Use `create(ProjectServiceUpdateMemberRequestSchema)` to create a new message.
- */
-export const ProjectServiceUpdateMemberRequestSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_project, 26);
-
-/**
- * ProjectServiceUpdateMemberResponse is the response payload to a update member request.
- *
- * @generated from message metalstack.api.v2.ProjectServiceUpdateMemberResponse
- */
-export type ProjectServiceUpdateMemberResponse = Message<"metalstack.api.v2.ProjectServiceUpdateMemberResponse"> & {
- /**
- * ProjectMember is the updated project member.
- *
- * @generated from field: metalstack.api.v2.ProjectMember project_member = 1;
- */
- projectMember?: ProjectMember | undefined;
-};
-
-/**
- * Describes the message metalstack.api.v2.ProjectServiceUpdateMemberResponse.
- * Use `create(ProjectServiceUpdateMemberResponseSchema)` to create a new message.
- */
-export const ProjectServiceUpdateMemberResponseSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_project, 27);
+ messageDesc(file_metalstack_api_v2_project, 18);
/**
* ProjectServiceInviteAcceptRequest is the request payload to a accept invite request.
@@ -871,7 +622,7 @@ export type ProjectServiceInviteAcceptRequest = Message<"metalstack.api.v2.Proje
* Use `create(ProjectServiceInviteAcceptRequestSchema)` to create a new message.
*/
export const ProjectServiceInviteAcceptRequestSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_project, 28);
+ messageDesc(file_metalstack_api_v2_project, 19);
/**
* ProjectServiceInviteAcceptResponse is the response payload to a accept invite request.
@@ -899,7 +650,7 @@ export type ProjectServiceInviteAcceptResponse = Message<"metalstack.api.v2.Proj
* Use `create(ProjectServiceInviteAcceptResponseSchema)` to create a new message.
*/
export const ProjectServiceInviteAcceptResponseSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_project, 29);
+ messageDesc(file_metalstack_api_v2_project, 20);
/**
* ProjectServiceInviteDeleteRequest is the request payload to a delete invite.
@@ -927,7 +678,7 @@ export type ProjectServiceInviteDeleteRequest = Message<"metalstack.api.v2.Proje
* Use `create(ProjectServiceInviteDeleteRequestSchema)` to create a new message.
*/
export const ProjectServiceInviteDeleteRequestSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_project, 30);
+ messageDesc(file_metalstack_api_v2_project, 21);
/**
* ProjectServiceInviteDeleteResponse is the response payload of a delete invite request.
@@ -942,7 +693,7 @@ export type ProjectServiceInviteDeleteResponse = Message<"metalstack.api.v2.Proj
* Use `create(ProjectServiceInviteDeleteResponseSchema)` to create a new message.
*/
export const ProjectServiceInviteDeleteResponseSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_project, 31);
+ messageDesc(file_metalstack_api_v2_project, 22);
/**
* ProjectService provides project management operations.
@@ -1000,46 +751,6 @@ export const ProjectService: GenService<{
input: typeof ProjectServiceUpdateRequestSchema;
output: typeof ProjectServiceUpdateResponseSchema;
},
- /**
- * Leave project.
- *
- * @generated from rpc metalstack.api.v2.ProjectService.Leave
- */
- leave: {
- methodKind: "unary";
- input: typeof ProjectServiceLeaveRequestSchema;
- output: typeof ProjectServiceLeaveResponseSchema;
- },
- /**
- * AddMember adds a user to a project.
- *
- * @generated from rpc metalstack.api.v2.ProjectService.AddMember
- */
- addMember: {
- methodKind: "unary";
- input: typeof ProjectServiceAddMemberRequestSchema;
- output: typeof ProjectServiceAddMemberResponseSchema;
- },
- /**
- * RemoveMember removes a user from a project.
- *
- * @generated from rpc metalstack.api.v2.ProjectService.RemoveMember
- */
- removeMember: {
- methodKind: "unary";
- input: typeof ProjectServiceRemoveMemberRequestSchema;
- output: typeof ProjectServiceRemoveMemberResponseSchema;
- },
- /**
- * UpdateMember updates a user for a project.
- *
- * @generated from rpc metalstack.api.v2.ProjectService.UpdateMember
- */
- updateMember: {
- methodKind: "unary";
- input: typeof ProjectServiceUpdateMemberRequestSchema;
- output: typeof ProjectServiceUpdateMemberResponseSchema;
- },
/**
* Invite a user to a project.
*
diff --git a/js/metalstack/api/v2/tenant_member_pb.d.ts b/js/metalstack/api/v2/tenant_member_pb.d.ts
new file mode 100644
index 00000000..45af4312
--- /dev/null
+++ b/js/metalstack/api/v2/tenant_member_pb.d.ts
@@ -0,0 +1,417 @@
+import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
+import type { Timestamp } from "@bufbuild/protobuf/wkt";
+import type { Meta, TenantRole, UpdateMeta } from "./common_pb";
+import type { Message } from "@bufbuild/protobuf";
+/**
+ * Describes the file metalstack/api/v2/tenant_member.proto.
+ */
+export declare const file_metalstack_api_v2_tenant_member: GenFile;
+/**
+ * TenantMember defines a user that participates in a tenant.
+ *
+ * @generated from message metalstack.api.v2.TenantMember
+ */
+export type TenantMember = Message<"metalstack.api.v2.TenantMember"> & {
+ /**
+ * Member is the user id of the member.
+ *
+ * @generated from field: string member = 1;
+ */
+ member: string;
+ /**
+ * Role is the role of the member.
+ *
+ * @generated from field: metalstack.api.v2.TenantRole role = 2;
+ */
+ role: TenantRole;
+ /**
+ * Projects in which a user is a direct member.
+ *
+ * @generated from field: repeated string projects = 3;
+ */
+ projects: string[];
+ /**
+ * CreatedAt the date when the member was added to the tenant.
+ *
+ * @generated from field: google.protobuf.Timestamp created_at = 4;
+ */
+ createdAt?: Timestamp | undefined;
+ /**
+ * Meta for this tenant member.
+ *
+ * @generated from field: metalstack.api.v2.Meta meta = 5;
+ */
+ meta?: Meta | undefined;
+ /**
+ * Tenant is the tenant that this member participates in.
+ *
+ * @generated from field: string tenant = 6;
+ */
+ tenant: string;
+};
+/**
+ * Describes the message metalstack.api.v2.TenantMember.
+ * Use `create(TenantMemberSchema)` to create a new message.
+ */
+export declare const TenantMemberSchema: GenMessage;
+/**
+ * TenantMemberServiceListRequest is the request payload of the tenant member list request.
+ *
+ * @generated from message metalstack.api.v2.TenantMemberServiceListRequest
+ */
+export type TenantMemberServiceListRequest = Message<"metalstack.api.v2.TenantMemberServiceListRequest"> & {
+ /**
+ * Login of the tenant.
+ *
+ * @generated from field: string login = 1;
+ */
+ login: string;
+ /**
+ * Query for tenant members.
+ *
+ * @generated from field: metalstack.api.v2.TenantMemberQuery query = 2;
+ */
+ query?: TenantMemberQuery | undefined;
+};
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceListRequest.
+ * Use `create(TenantMemberServiceListRequestSchema)` to create a new message.
+ */
+export declare const TenantMemberServiceListRequestSchema: GenMessage;
+/**
+ * TenantMemberQuery is used to search tenant members.
+ *
+ * @generated from message metalstack.api.v2.TenantMemberQuery
+ */
+export type TenantMemberQuery = Message<"metalstack.api.v2.TenantMemberQuery"> & {
+ /**
+ * Member is the user id of the member.
+ *
+ * @generated from field: optional string member = 1;
+ */
+ member?: string | undefined;
+ /**
+ * Role is the role of the member.
+ *
+ * @generated from field: optional metalstack.api.v2.TenantRole role = 2;
+ */
+ role?: TenantRole | undefined;
+ /**
+ * Projects in which a user is a direct member.
+ *
+ * @generated from field: repeated string projects = 3;
+ */
+ projects: string[];
+};
+/**
+ * Describes the message metalstack.api.v2.TenantMemberQuery.
+ * Use `create(TenantMemberQuerySchema)` to create a new message.
+ */
+export declare const TenantMemberQuerySchema: GenMessage;
+/**
+ * TenantMemberServiceGetRequest is the request payload of the tenant member get request.
+ *
+ * @generated from message metalstack.api.v2.TenantMemberServiceGetRequest
+ */
+export type TenantMemberServiceGetRequest = Message<"metalstack.api.v2.TenantMemberServiceGetRequest"> & {
+ /**
+ * Login of the tenant.
+ *
+ * @generated from field: string login = 1;
+ */
+ login: string;
+ /**
+ * Member is the user id of the member.
+ *
+ * @generated from field: string member = 2;
+ */
+ member: string;
+};
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceGetRequest.
+ * Use `create(TenantMemberServiceGetRequestSchema)` to create a new message.
+ */
+export declare const TenantMemberServiceGetRequestSchema: GenMessage;
+/**
+ * TenantMemberServiceDeleteRequest is used to remove a member from a tenant.
+ *
+ * @generated from message metalstack.api.v2.TenantMemberServiceDeleteRequest
+ */
+export type TenantMemberServiceDeleteRequest = Message<"metalstack.api.v2.TenantMemberServiceDeleteRequest"> & {
+ /**
+ * Login of the tenant.
+ *
+ * @generated from field: string login = 1;
+ */
+ login: string;
+ /**
+ * Member is the id of the member to remove from this tenant.
+ *
+ * @generated from field: string member = 2;
+ */
+ member: string;
+};
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceDeleteRequest.
+ * Use `create(TenantMemberServiceDeleteRequestSchema)` to create a new message.
+ */
+export declare const TenantMemberServiceDeleteRequestSchema: GenMessage;
+/**
+ * TenantMemberServiceCreateRequest is the request payload for adding a member to a tenant.
+ *
+ * @generated from message metalstack.api.v2.TenantMemberServiceCreateRequest
+ */
+export type TenantMemberServiceCreateRequest = Message<"metalstack.api.v2.TenantMemberServiceCreateRequest"> & {
+ /**
+ * Login of the tenant to which the member will be added.
+ *
+ * @generated from field: string login = 1;
+ */
+ login: string;
+ /**
+ * Login of the member to add.
+ *
+ * @generated from field: string member = 2;
+ */
+ member: string;
+ /**
+ * Role to assign to the new member.
+ *
+ * @generated from field: metalstack.api.v2.TenantRole role = 3;
+ */
+ role: TenantRole;
+};
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceCreateRequest.
+ * Use `create(TenantMemberServiceCreateRequestSchema)` to create a new message.
+ */
+export declare const TenantMemberServiceCreateRequestSchema: GenMessage;
+/**
+ * TenantMemberServiceUpdateRequest is used to update a member from a tenant.
+ *
+ * @generated from message metalstack.api.v2.TenantMemberServiceUpdateRequest
+ */
+export type TenantMemberServiceUpdateRequest = Message<"metalstack.api.v2.TenantMemberServiceUpdateRequest"> & {
+ /**
+ * Login of the tenant.
+ *
+ * @generated from field: string login = 1;
+ */
+ login: string;
+ /**
+ * Member is the id of the member to update in this tenant.
+ *
+ * @generated from field: string member = 2;
+ */
+ member: string;
+ /**
+ * Role of this user in this tenant.
+ *
+ * @generated from field: optional metalstack.api.v2.TenantRole role = 3;
+ */
+ role?: TenantRole | undefined;
+ /**
+ * UpdateMeta contains the timestamp and strategy to be used in this update request.
+ *
+ * @generated from field: metalstack.api.v2.UpdateMeta update_meta = 4;
+ */
+ updateMeta?: UpdateMeta | undefined;
+};
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceUpdateRequest.
+ * Use `create(TenantMemberServiceUpdateRequestSchema)` to create a new message.
+ */
+export declare const TenantMemberServiceUpdateRequestSchema: GenMessage;
+/**
+ * TenantMemberServiceGetResponse is the response payload of the tenant member get request.
+ *
+ * @generated from message metalstack.api.v2.TenantMemberServiceGetResponse
+ */
+export type TenantMemberServiceGetResponse = Message<"metalstack.api.v2.TenantMemberServiceGetResponse"> & {
+ /**
+ * Member is the member of this tenant.
+ *
+ * @generated from field: metalstack.api.v2.TenantMember member = 1;
+ */
+ member?: TenantMember | undefined;
+};
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceGetResponse.
+ * Use `create(TenantMemberServiceGetResponseSchema)` to create a new message.
+ */
+export declare const TenantMemberServiceGetResponseSchema: GenMessage;
+/**
+ * TenantMemberServiceListResponse is the response payload of the tenant member list request.
+ *
+ * @generated from message metalstack.api.v2.TenantMemberServiceListResponse
+ */
+export type TenantMemberServiceListResponse = Message<"metalstack.api.v2.TenantMemberServiceListResponse"> & {
+ /**
+ * Members is the list of tenant members.
+ *
+ * @generated from field: repeated metalstack.api.v2.TenantMember members = 1;
+ */
+ members: TenantMember[];
+};
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceListResponse.
+ * Use `create(TenantMemberServiceListResponseSchema)` to create a new message.
+ */
+export declare const TenantMemberServiceListResponseSchema: GenMessage;
+/**
+ * TenantMemberServiceCreateResponse is the response payload of the tenant member create request.
+ *
+ * @generated from message metalstack.api.v2.TenantMemberServiceCreateResponse
+ */
+export type TenantMemberServiceCreateResponse = Message<"metalstack.api.v2.TenantMemberServiceCreateResponse"> & {
+ /**
+ * Member is the member of this tenant.
+ *
+ * @generated from field: metalstack.api.v2.TenantMember member = 1;
+ */
+ member?: TenantMember | undefined;
+};
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceCreateResponse.
+ * Use `create(TenantMemberServiceCreateResponseSchema)` to create a new message.
+ */
+export declare const TenantMemberServiceCreateResponseSchema: GenMessage;
+/**
+ * TenantMemberServiceUpdateResponse is the response payload of the tenant member update request.
+ *
+ * @generated from message metalstack.api.v2.TenantMemberServiceUpdateResponse
+ */
+export type TenantMemberServiceUpdateResponse = Message<"metalstack.api.v2.TenantMemberServiceUpdateResponse"> & {
+ /**
+ * Member is the member of this tenant.
+ *
+ * @generated from field: metalstack.api.v2.TenantMember member = 1;
+ */
+ member?: TenantMember | undefined;
+};
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceUpdateResponse.
+ * Use `create(TenantMemberServiceUpdateResponseSchema)` to create a new message.
+ */
+export declare const TenantMemberServiceUpdateResponseSchema: GenMessage;
+/**
+ * TenantMemberServiceDeleteResponse is the response payload of the tenant member delete request.
+ *
+ * @generated from message metalstack.api.v2.TenantMemberServiceDeleteResponse
+ */
+export type TenantMemberServiceDeleteResponse = Message<"metalstack.api.v2.TenantMemberServiceDeleteResponse"> & {
+ /**
+ * Member is the member of this tenant.
+ *
+ * @generated from field: metalstack.api.v2.TenantMember member = 1;
+ */
+ member?: TenantMember | undefined;
+};
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceDeleteResponse.
+ * Use `create(TenantMemberServiceDeleteResponseSchema)` to create a new message.
+ */
+export declare const TenantMemberServiceDeleteResponseSchema: GenMessage;
+/**
+ * TenantMemberServiceLeaveRequest is used to leave a tenant. This way a member is not required to ask a tenant owner to remove him.
+ *
+ * @generated from message metalstack.api.v2.TenantMemberServiceLeaveRequest
+ */
+export type TenantMemberServiceLeaveRequest = Message<"metalstack.api.v2.TenantMemberServiceLeaveRequest"> & {
+ /**
+ * Login of the tenant that the user wants to leave.
+ *
+ * @generated from field: string login = 1;
+ */
+ login: string;
+};
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceLeaveRequest.
+ * Use `create(TenantMemberServiceLeaveRequestSchema)` to create a new message.
+ */
+export declare const TenantMemberServiceLeaveRequestSchema: GenMessage;
+/**
+ * TenantMemberServiceLeaveResponse is the response payload to a leave tenant request.
+ *
+ * @generated from message metalstack.api.v2.TenantMemberServiceLeaveResponse
+ */
+export type TenantMemberServiceLeaveResponse = Message<"metalstack.api.v2.TenantMemberServiceLeaveResponse"> & {
+ /**
+ * Member is the member of this tenant.
+ *
+ * @generated from field: metalstack.api.v2.TenantMember member = 1;
+ */
+ member?: TenantMember | undefined;
+};
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceLeaveResponse.
+ * Use `create(TenantMemberServiceLeaveResponseSchema)` to create a new message.
+ */
+export declare const TenantMemberServiceLeaveResponseSchema: GenMessage;
+/**
+ * TenantMemberService provides tenant member management operations.
+ *
+ * @generated from service metalstack.api.v2.TenantMemberService
+ */
+export declare const TenantMemberService: GenService<{
+ /**
+ * Creates a new tenant member.
+ *
+ * @generated from rpc metalstack.api.v2.TenantMemberService.Create
+ */
+ create: {
+ methodKind: "unary";
+ input: typeof TenantMemberServiceCreateRequestSchema;
+ output: typeof TenantMemberServiceCreateResponseSchema;
+ };
+ /**
+ * Returns the list of tenant members.
+ *
+ * @generated from rpc metalstack.api.v2.TenantMemberService.List
+ */
+ list: {
+ methodKind: "unary";
+ input: typeof TenantMemberServiceListRequestSchema;
+ output: typeof TenantMemberServiceListResponseSchema;
+ };
+ /**
+ * Get a tenant member.
+ *
+ * @generated from rpc metalstack.api.v2.TenantMemberService.Get
+ */
+ get: {
+ methodKind: "unary";
+ input: typeof TenantMemberServiceGetRequestSchema;
+ output: typeof TenantMemberServiceGetResponseSchema;
+ };
+ /**
+ * Update a tenant member.
+ *
+ * @generated from rpc metalstack.api.v2.TenantMemberService.Update
+ */
+ update: {
+ methodKind: "unary";
+ input: typeof TenantMemberServiceUpdateRequestSchema;
+ output: typeof TenantMemberServiceUpdateResponseSchema;
+ };
+ /**
+ * Delete a tenant.
+ *
+ * @generated from rpc metalstack.api.v2.TenantMemberService.Delete
+ */
+ delete: {
+ methodKind: "unary";
+ input: typeof TenantMemberServiceDeleteRequestSchema;
+ output: typeof TenantMemberServiceDeleteResponseSchema;
+ };
+ /**
+ * Leave removes a member from a tenant.
+ *
+ * @generated from rpc metalstack.api.v2.TenantMemberService.Leave
+ */
+ leave: {
+ methodKind: "unary";
+ input: typeof TenantMemberServiceLeaveRequestSchema;
+ output: typeof TenantMemberServiceLeaveResponseSchema;
+ };
+}>;
diff --git a/js/metalstack/api/v2/tenant_member_pb.js b/js/metalstack/api/v2/tenant_member_pb.js
new file mode 100644
index 00000000..7a821852
--- /dev/null
+++ b/js/metalstack/api/v2/tenant_member_pb.js
@@ -0,0 +1,88 @@
+// @generated by protoc-gen-es v2.14.1 with parameter "target=ts"
+// @generated from file metalstack/api/v2/tenant_member.proto (package metalstack.api.v2, syntax proto3)
+/* eslint-disable */
+import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
+import { file_buf_validate_validate } from "../../../buf/validate/validate_pb";
+import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
+import { file_metalstack_api_v2_common } from "./common_pb";
+import { file_metalstack_api_v2_predefined_rules } from "./predefined_rules_pb";
+/**
+ * Describes the file metalstack/api/v2/tenant_member.proto.
+ */
+export const file_metalstack_api_v2_tenant_member = /*@__PURE__*/ fileDesc("CiVtZXRhbHN0YWNrL2FwaS92Mi90ZW5hbnRfbWVtYmVyLnByb3RvEhFtZXRhbHN0YWNrLmFwaS52MiLoAQoMVGVuYW50TWVtYmVyEhsKBm1lbWJlchgBIAEoCUILukgIcgaQtK6xAgESNQoEcm9sZRgCIAEoDjIdLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFJvbGVCCLpIBYIBAhABEhAKCHByb2plY3RzGAMgAygJEi4KCmNyZWF0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiUKBG1ldGEYBSABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhEhsKBnRlbmFudBgGIAEoCUILukgIcgaQtK6xAgEicQoeVGVuYW50TWVtYmVyU2VydmljZUxpc3RSZXF1ZXN0EhoKBWxvZ2luGAEgASgJQgu6SAhyBpC0rrECARIzCgVxdWVyeRgCIAEoCzIkLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudE1lbWJlclF1ZXJ5IpcBChFUZW5hbnRNZW1iZXJRdWVyeRIgCgZtZW1iZXIYASABKAlCC7pICHIGkLSusQIBSACIAQESOgoEcm9sZRgCIAEoDjIdLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFJvbGVCCLpIBYIBAhABSAGIAQESEAoIcHJvamVjdHMYAyADKAlCCQoHX21lbWJlckIHCgVfcm9sZSJYCh1UZW5hbnRNZW1iZXJTZXJ2aWNlR2V0UmVxdWVzdBIaCgVsb2dpbhgBIAEoCUILukgIcgaQtK6xAgESGwoGbWVtYmVyGAIgASgJQgu6SAhyBpC0rrECASJOCiBUZW5hbnRNZW1iZXJTZXJ2aWNlRGVsZXRlUmVxdWVzdBIaCgVsb2dpbhgBIAEoCUILukgIcgaQtK6xAgESDgoGbWVtYmVyGAIgASgJIpIBCiBUZW5hbnRNZW1iZXJTZXJ2aWNlQ3JlYXRlUmVxdWVzdBIaCgVsb2dpbhgBIAEoCUILukgIcgaQtK6xAgESGwoGbWVtYmVyGAIgASgJQgu6SAhyBpC0rrECARI1CgRyb2xlGAMgASgOMh0ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50Um9sZUIIukgFggECEAEi3AEKIFRlbmFudE1lbWJlclNlcnZpY2VVcGRhdGVSZXF1ZXN0EhoKBWxvZ2luGAEgASgJQgu6SAhyBpC0rrECARIbCgZtZW1iZXIYAiABKAlCC7pICHIGkLSusQIBEjoKBHJvbGUYAyABKA4yHS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRSb2xlQgi6SAWCAQIQAUgAiAEBEjoKC3VwZGF0ZV9tZXRhGAQgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTWV0YUIGukgDyAEBQgcKBV9yb2xlIlEKHlRlbmFudE1lbWJlclNlcnZpY2VHZXRSZXNwb25zZRIvCgZtZW1iZXIYASABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRNZW1iZXIiUwofVGVuYW50TWVtYmVyU2VydmljZUxpc3RSZXNwb25zZRIwCgdtZW1iZXJzGAEgAygLMh8ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50TWVtYmVyIlQKIVRlbmFudE1lbWJlclNlcnZpY2VDcmVhdGVSZXNwb25zZRIvCgZtZW1iZXIYASABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRNZW1iZXIiVAohVGVuYW50TWVtYmVyU2VydmljZVVwZGF0ZVJlc3BvbnNlEi8KBm1lbWJlchgBIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudE1lbWJlciJUCiFUZW5hbnRNZW1iZXJTZXJ2aWNlRGVsZXRlUmVzcG9uc2USLwoGbWVtYmVyGAEgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50TWVtYmVyIj0KH1RlbmFudE1lbWJlclNlcnZpY2VMZWF2ZVJlcXVlc3QSGgoFbG9naW4YASABKAlCC7pICHIGkLSusQIBIlMKIFRlbmFudE1lbWJlclNlcnZpY2VMZWF2ZVJlc3BvbnNlEi8KBm1lbWJlchgBIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudE1lbWJlcjKIBgoTVGVuYW50TWVtYmVyU2VydmljZRJ+CgZDcmVhdGUSMy5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRNZW1iZXJTZXJ2aWNlQ3JlYXRlUmVxdWVzdBo0Lm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudE1lbWJlclNlcnZpY2VDcmVhdGVSZXNwb25zZSIJwvMYAQHg8xgBEnsKBExpc3QSMS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRNZW1iZXJTZXJ2aWNlTGlzdFJlcXVlc3QaMi5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRNZW1iZXJTZXJ2aWNlTGlzdFJlc3BvbnNlIgzC8xgEAQIDBODzGAISeAoDR2V0EjAubWV0YWxzdGFjay5hcGkudjIuVGVuYW50TWVtYmVyU2VydmljZUdldFJlcXVlc3QaMS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRNZW1iZXJTZXJ2aWNlR2V0UmVzcG9uc2UiDMLzGAQBAgME4PMYAhJ+CgZVcGRhdGUSMy5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRNZW1iZXJTZXJ2aWNlVXBkYXRlUmVxdWVzdBo0Lm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudE1lbWJlclNlcnZpY2VVcGRhdGVSZXNwb25zZSIJwvMYAQHg8xgBEn4KBkRlbGV0ZRIzLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudE1lbWJlclNlcnZpY2VEZWxldGVSZXF1ZXN0GjQubWV0YWxzdGFjay5hcGkudjIuVGVuYW50TWVtYmVyU2VydmljZURlbGV0ZVJlc3BvbnNlIgnC8xgBAeDzGAESegoFTGVhdmUSMi5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRNZW1iZXJTZXJ2aWNlTGVhdmVSZXF1ZXN0GjMubWV0YWxzdGFjay5hcGkudjIuVGVuYW50TWVtYmVyU2VydmljZUxlYXZlUmVzcG9uc2UiCNjzGALg8xgBQscBChVjb20ubWV0YWxzdGFjay5hcGkudjJCEVRlbmFudE1lbWJlclByb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules]);
+/**
+ * Describes the message metalstack.api.v2.TenantMember.
+ * Use `create(TenantMemberSchema)` to create a new message.
+ */
+export const TenantMemberSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant_member, 0);
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceListRequest.
+ * Use `create(TenantMemberServiceListRequestSchema)` to create a new message.
+ */
+export const TenantMemberServiceListRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant_member, 1);
+/**
+ * Describes the message metalstack.api.v2.TenantMemberQuery.
+ * Use `create(TenantMemberQuerySchema)` to create a new message.
+ */
+export const TenantMemberQuerySchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant_member, 2);
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceGetRequest.
+ * Use `create(TenantMemberServiceGetRequestSchema)` to create a new message.
+ */
+export const TenantMemberServiceGetRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant_member, 3);
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceDeleteRequest.
+ * Use `create(TenantMemberServiceDeleteRequestSchema)` to create a new message.
+ */
+export const TenantMemberServiceDeleteRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant_member, 4);
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceCreateRequest.
+ * Use `create(TenantMemberServiceCreateRequestSchema)` to create a new message.
+ */
+export const TenantMemberServiceCreateRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant_member, 5);
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceUpdateRequest.
+ * Use `create(TenantMemberServiceUpdateRequestSchema)` to create a new message.
+ */
+export const TenantMemberServiceUpdateRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant_member, 6);
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceGetResponse.
+ * Use `create(TenantMemberServiceGetResponseSchema)` to create a new message.
+ */
+export const TenantMemberServiceGetResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant_member, 7);
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceListResponse.
+ * Use `create(TenantMemberServiceListResponseSchema)` to create a new message.
+ */
+export const TenantMemberServiceListResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant_member, 8);
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceCreateResponse.
+ * Use `create(TenantMemberServiceCreateResponseSchema)` to create a new message.
+ */
+export const TenantMemberServiceCreateResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant_member, 9);
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceUpdateResponse.
+ * Use `create(TenantMemberServiceUpdateResponseSchema)` to create a new message.
+ */
+export const TenantMemberServiceUpdateResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant_member, 10);
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceDeleteResponse.
+ * Use `create(TenantMemberServiceDeleteResponseSchema)` to create a new message.
+ */
+export const TenantMemberServiceDeleteResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant_member, 11);
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceLeaveRequest.
+ * Use `create(TenantMemberServiceLeaveRequestSchema)` to create a new message.
+ */
+export const TenantMemberServiceLeaveRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant_member, 12);
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceLeaveResponse.
+ * Use `create(TenantMemberServiceLeaveResponseSchema)` to create a new message.
+ */
+export const TenantMemberServiceLeaveResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant_member, 13);
+/**
+ * TenantMemberService provides tenant member management operations.
+ *
+ * @generated from service metalstack.api.v2.TenantMemberService
+ */
+export const TenantMemberService = /*@__PURE__*/ serviceDesc(file_metalstack_api_v2_tenant_member, 0);
diff --git a/js/metalstack/api/v2/tenant_member_pb.ts b/js/metalstack/api/v2/tenant_member_pb.ts
new file mode 100644
index 00000000..ff3f54fd
--- /dev/null
+++ b/js/metalstack/api/v2/tenant_member_pb.ts
@@ -0,0 +1,488 @@
+// @generated by protoc-gen-es v2.14.1 with parameter "target=ts"
+// @generated from file metalstack/api/v2/tenant_member.proto (package metalstack.api.v2, syntax proto3)
+/* eslint-disable */
+
+import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
+import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
+import { file_buf_validate_validate } from "../../../buf/validate/validate_pb";
+import type { Timestamp } from "@bufbuild/protobuf/wkt";
+import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
+import type { Meta, TenantRole, UpdateMeta } from "./common_pb";
+import { file_metalstack_api_v2_common } from "./common_pb";
+import { file_metalstack_api_v2_predefined_rules } from "./predefined_rules_pb";
+import type { Message } from "@bufbuild/protobuf";
+
+/**
+ * Describes the file metalstack/api/v2/tenant_member.proto.
+ */
+export const file_metalstack_api_v2_tenant_member: GenFile = /*@__PURE__*/
+ fileDesc("CiVtZXRhbHN0YWNrL2FwaS92Mi90ZW5hbnRfbWVtYmVyLnByb3RvEhFtZXRhbHN0YWNrLmFwaS52MiLoAQoMVGVuYW50TWVtYmVyEhsKBm1lbWJlchgBIAEoCUILukgIcgaQtK6xAgESNQoEcm9sZRgCIAEoDjIdLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFJvbGVCCLpIBYIBAhABEhAKCHByb2plY3RzGAMgAygJEi4KCmNyZWF0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiUKBG1ldGEYBSABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhEhsKBnRlbmFudBgGIAEoCUILukgIcgaQtK6xAgEicQoeVGVuYW50TWVtYmVyU2VydmljZUxpc3RSZXF1ZXN0EhoKBWxvZ2luGAEgASgJQgu6SAhyBpC0rrECARIzCgVxdWVyeRgCIAEoCzIkLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudE1lbWJlclF1ZXJ5IpcBChFUZW5hbnRNZW1iZXJRdWVyeRIgCgZtZW1iZXIYASABKAlCC7pICHIGkLSusQIBSACIAQESOgoEcm9sZRgCIAEoDjIdLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFJvbGVCCLpIBYIBAhABSAGIAQESEAoIcHJvamVjdHMYAyADKAlCCQoHX21lbWJlckIHCgVfcm9sZSJYCh1UZW5hbnRNZW1iZXJTZXJ2aWNlR2V0UmVxdWVzdBIaCgVsb2dpbhgBIAEoCUILukgIcgaQtK6xAgESGwoGbWVtYmVyGAIgASgJQgu6SAhyBpC0rrECASJOCiBUZW5hbnRNZW1iZXJTZXJ2aWNlRGVsZXRlUmVxdWVzdBIaCgVsb2dpbhgBIAEoCUILukgIcgaQtK6xAgESDgoGbWVtYmVyGAIgASgJIpIBCiBUZW5hbnRNZW1iZXJTZXJ2aWNlQ3JlYXRlUmVxdWVzdBIaCgVsb2dpbhgBIAEoCUILukgIcgaQtK6xAgESGwoGbWVtYmVyGAIgASgJQgu6SAhyBpC0rrECARI1CgRyb2xlGAMgASgOMh0ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50Um9sZUIIukgFggECEAEi3AEKIFRlbmFudE1lbWJlclNlcnZpY2VVcGRhdGVSZXF1ZXN0EhoKBWxvZ2luGAEgASgJQgu6SAhyBpC0rrECARIbCgZtZW1iZXIYAiABKAlCC7pICHIGkLSusQIBEjoKBHJvbGUYAyABKA4yHS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRSb2xlQgi6SAWCAQIQAUgAiAEBEjoKC3VwZGF0ZV9tZXRhGAQgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTWV0YUIGukgDyAEBQgcKBV9yb2xlIlEKHlRlbmFudE1lbWJlclNlcnZpY2VHZXRSZXNwb25zZRIvCgZtZW1iZXIYASABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRNZW1iZXIiUwofVGVuYW50TWVtYmVyU2VydmljZUxpc3RSZXNwb25zZRIwCgdtZW1iZXJzGAEgAygLMh8ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50TWVtYmVyIlQKIVRlbmFudE1lbWJlclNlcnZpY2VDcmVhdGVSZXNwb25zZRIvCgZtZW1iZXIYASABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRNZW1iZXIiVAohVGVuYW50TWVtYmVyU2VydmljZVVwZGF0ZVJlc3BvbnNlEi8KBm1lbWJlchgBIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudE1lbWJlciJUCiFUZW5hbnRNZW1iZXJTZXJ2aWNlRGVsZXRlUmVzcG9uc2USLwoGbWVtYmVyGAEgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50TWVtYmVyIj0KH1RlbmFudE1lbWJlclNlcnZpY2VMZWF2ZVJlcXVlc3QSGgoFbG9naW4YASABKAlCC7pICHIGkLSusQIBIlMKIFRlbmFudE1lbWJlclNlcnZpY2VMZWF2ZVJlc3BvbnNlEi8KBm1lbWJlchgBIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudE1lbWJlcjKIBgoTVGVuYW50TWVtYmVyU2VydmljZRJ+CgZDcmVhdGUSMy5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRNZW1iZXJTZXJ2aWNlQ3JlYXRlUmVxdWVzdBo0Lm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudE1lbWJlclNlcnZpY2VDcmVhdGVSZXNwb25zZSIJwvMYAQHg8xgBEnsKBExpc3QSMS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRNZW1iZXJTZXJ2aWNlTGlzdFJlcXVlc3QaMi5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRNZW1iZXJTZXJ2aWNlTGlzdFJlc3BvbnNlIgzC8xgEAQIDBODzGAISeAoDR2V0EjAubWV0YWxzdGFjay5hcGkudjIuVGVuYW50TWVtYmVyU2VydmljZUdldFJlcXVlc3QaMS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRNZW1iZXJTZXJ2aWNlR2V0UmVzcG9uc2UiDMLzGAQBAgME4PMYAhJ+CgZVcGRhdGUSMy5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRNZW1iZXJTZXJ2aWNlVXBkYXRlUmVxdWVzdBo0Lm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudE1lbWJlclNlcnZpY2VVcGRhdGVSZXNwb25zZSIJwvMYAQHg8xgBEn4KBkRlbGV0ZRIzLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudE1lbWJlclNlcnZpY2VEZWxldGVSZXF1ZXN0GjQubWV0YWxzdGFjay5hcGkudjIuVGVuYW50TWVtYmVyU2VydmljZURlbGV0ZVJlc3BvbnNlIgnC8xgBAeDzGAESegoFTGVhdmUSMi5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRNZW1iZXJTZXJ2aWNlTGVhdmVSZXF1ZXN0GjMubWV0YWxzdGFjay5hcGkudjIuVGVuYW50TWVtYmVyU2VydmljZUxlYXZlUmVzcG9uc2UiCNjzGALg8xgBQscBChVjb20ubWV0YWxzdGFjay5hcGkudjJCEVRlbmFudE1lbWJlclByb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules]);
+
+/**
+ * TenantMember defines a user that participates in a tenant.
+ *
+ * @generated from message metalstack.api.v2.TenantMember
+ */
+export type TenantMember = Message<"metalstack.api.v2.TenantMember"> & {
+ /**
+ * Member is the user id of the member.
+ *
+ * @generated from field: string member = 1;
+ */
+ member: string;
+
+ /**
+ * Role is the role of the member.
+ *
+ * @generated from field: metalstack.api.v2.TenantRole role = 2;
+ */
+ role: TenantRole;
+
+ /**
+ * Projects in which a user is a direct member.
+ *
+ * @generated from field: repeated string projects = 3;
+ */
+ projects: string[];
+
+ /**
+ * CreatedAt the date when the member was added to the tenant.
+ *
+ * @generated from field: google.protobuf.Timestamp created_at = 4;
+ */
+ createdAt?: Timestamp | undefined;
+
+ /**
+ * Meta for this tenant member.
+ *
+ * @generated from field: metalstack.api.v2.Meta meta = 5;
+ */
+ meta?: Meta | undefined;
+
+ /**
+ * Tenant is the tenant that this member participates in.
+ *
+ * @generated from field: string tenant = 6;
+ */
+ tenant: string;
+};
+
+/**
+ * Describes the message metalstack.api.v2.TenantMember.
+ * Use `create(TenantMemberSchema)` to create a new message.
+ */
+export const TenantMemberSchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_api_v2_tenant_member, 0);
+
+/**
+ * TenantMemberServiceListRequest is the request payload of the tenant member list request.
+ *
+ * @generated from message metalstack.api.v2.TenantMemberServiceListRequest
+ */
+export type TenantMemberServiceListRequest = Message<"metalstack.api.v2.TenantMemberServiceListRequest"> & {
+ /**
+ * Login of the tenant.
+ *
+ * @generated from field: string login = 1;
+ */
+ login: string;
+
+ /**
+ * Query for tenant members.
+ *
+ * @generated from field: metalstack.api.v2.TenantMemberQuery query = 2;
+ */
+ query?: TenantMemberQuery | undefined;
+};
+
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceListRequest.
+ * Use `create(TenantMemberServiceListRequestSchema)` to create a new message.
+ */
+export const TenantMemberServiceListRequestSchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_api_v2_tenant_member, 1);
+
+/**
+ * TenantMemberQuery is used to search tenant members.
+ *
+ * @generated from message metalstack.api.v2.TenantMemberQuery
+ */
+export type TenantMemberQuery = Message<"metalstack.api.v2.TenantMemberQuery"> & {
+ /**
+ * Member is the user id of the member.
+ *
+ * @generated from field: optional string member = 1;
+ */
+ member?: string | undefined;
+
+ /**
+ * Role is the role of the member.
+ *
+ * @generated from field: optional metalstack.api.v2.TenantRole role = 2;
+ */
+ role?: TenantRole | undefined;
+
+ /**
+ * Projects in which a user is a direct member.
+ *
+ * @generated from field: repeated string projects = 3;
+ */
+ projects: string[];
+};
+
+/**
+ * Describes the message metalstack.api.v2.TenantMemberQuery.
+ * Use `create(TenantMemberQuerySchema)` to create a new message.
+ */
+export const TenantMemberQuerySchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_api_v2_tenant_member, 2);
+
+/**
+ * TenantMemberServiceGetRequest is the request payload of the tenant member get request.
+ *
+ * @generated from message metalstack.api.v2.TenantMemberServiceGetRequest
+ */
+export type TenantMemberServiceGetRequest = Message<"metalstack.api.v2.TenantMemberServiceGetRequest"> & {
+ /**
+ * Login of the tenant.
+ *
+ * @generated from field: string login = 1;
+ */
+ login: string;
+
+ /**
+ * Member is the user id of the member.
+ *
+ * @generated from field: string member = 2;
+ */
+ member: string;
+};
+
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceGetRequest.
+ * Use `create(TenantMemberServiceGetRequestSchema)` to create a new message.
+ */
+export const TenantMemberServiceGetRequestSchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_api_v2_tenant_member, 3);
+
+/**
+ * TenantMemberServiceDeleteRequest is used to remove a member from a tenant.
+ *
+ * @generated from message metalstack.api.v2.TenantMemberServiceDeleteRequest
+ */
+export type TenantMemberServiceDeleteRequest = Message<"metalstack.api.v2.TenantMemberServiceDeleteRequest"> & {
+ /**
+ * Login of the tenant.
+ *
+ * @generated from field: string login = 1;
+ */
+ login: string;
+
+ /**
+ * Member is the id of the member to remove from this tenant.
+ *
+ * @generated from field: string member = 2;
+ */
+ member: string;
+};
+
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceDeleteRequest.
+ * Use `create(TenantMemberServiceDeleteRequestSchema)` to create a new message.
+ */
+export const TenantMemberServiceDeleteRequestSchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_api_v2_tenant_member, 4);
+
+/**
+ * TenantMemberServiceCreateRequest is the request payload for adding a member to a tenant.
+ *
+ * @generated from message metalstack.api.v2.TenantMemberServiceCreateRequest
+ */
+export type TenantMemberServiceCreateRequest = Message<"metalstack.api.v2.TenantMemberServiceCreateRequest"> & {
+ /**
+ * Login of the tenant to which the member will be added.
+ *
+ * @generated from field: string login = 1;
+ */
+ login: string;
+
+ /**
+ * Login of the member to add.
+ *
+ * @generated from field: string member = 2;
+ */
+ member: string;
+
+ /**
+ * Role to assign to the new member.
+ *
+ * @generated from field: metalstack.api.v2.TenantRole role = 3;
+ */
+ role: TenantRole;
+};
+
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceCreateRequest.
+ * Use `create(TenantMemberServiceCreateRequestSchema)` to create a new message.
+ */
+export const TenantMemberServiceCreateRequestSchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_api_v2_tenant_member, 5);
+
+/**
+ * TenantMemberServiceUpdateRequest is used to update a member from a tenant.
+ *
+ * @generated from message metalstack.api.v2.TenantMemberServiceUpdateRequest
+ */
+export type TenantMemberServiceUpdateRequest = Message<"metalstack.api.v2.TenantMemberServiceUpdateRequest"> & {
+ /**
+ * Login of the tenant.
+ *
+ * @generated from field: string login = 1;
+ */
+ login: string;
+
+ /**
+ * Member is the id of the member to update in this tenant.
+ *
+ * @generated from field: string member = 2;
+ */
+ member: string;
+
+ /**
+ * Role of this user in this tenant.
+ *
+ * @generated from field: optional metalstack.api.v2.TenantRole role = 3;
+ */
+ role?: TenantRole | undefined;
+
+ /**
+ * UpdateMeta contains the timestamp and strategy to be used in this update request.
+ *
+ * @generated from field: metalstack.api.v2.UpdateMeta update_meta = 4;
+ */
+ updateMeta?: UpdateMeta | undefined;
+};
+
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceUpdateRequest.
+ * Use `create(TenantMemberServiceUpdateRequestSchema)` to create a new message.
+ */
+export const TenantMemberServiceUpdateRequestSchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_api_v2_tenant_member, 6);
+
+/**
+ * TenantMemberServiceGetResponse is the response payload of the tenant member get request.
+ *
+ * @generated from message metalstack.api.v2.TenantMemberServiceGetResponse
+ */
+export type TenantMemberServiceGetResponse = Message<"metalstack.api.v2.TenantMemberServiceGetResponse"> & {
+ /**
+ * Member is the member of this tenant.
+ *
+ * @generated from field: metalstack.api.v2.TenantMember member = 1;
+ */
+ member?: TenantMember | undefined;
+};
+
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceGetResponse.
+ * Use `create(TenantMemberServiceGetResponseSchema)` to create a new message.
+ */
+export const TenantMemberServiceGetResponseSchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_api_v2_tenant_member, 7);
+
+/**
+ * TenantMemberServiceListResponse is the response payload of the tenant member list request.
+ *
+ * @generated from message metalstack.api.v2.TenantMemberServiceListResponse
+ */
+export type TenantMemberServiceListResponse = Message<"metalstack.api.v2.TenantMemberServiceListResponse"> & {
+ /**
+ * Members is the list of tenant members.
+ *
+ * @generated from field: repeated metalstack.api.v2.TenantMember members = 1;
+ */
+ members: TenantMember[];
+};
+
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceListResponse.
+ * Use `create(TenantMemberServiceListResponseSchema)` to create a new message.
+ */
+export const TenantMemberServiceListResponseSchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_api_v2_tenant_member, 8);
+
+/**
+ * TenantMemberServiceCreateResponse is the response payload of the tenant member create request.
+ *
+ * @generated from message metalstack.api.v2.TenantMemberServiceCreateResponse
+ */
+export type TenantMemberServiceCreateResponse = Message<"metalstack.api.v2.TenantMemberServiceCreateResponse"> & {
+ /**
+ * Member is the member of this tenant.
+ *
+ * @generated from field: metalstack.api.v2.TenantMember member = 1;
+ */
+ member?: TenantMember | undefined;
+};
+
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceCreateResponse.
+ * Use `create(TenantMemberServiceCreateResponseSchema)` to create a new message.
+ */
+export const TenantMemberServiceCreateResponseSchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_api_v2_tenant_member, 9);
+
+/**
+ * TenantMemberServiceUpdateResponse is the response payload of the tenant member update request.
+ *
+ * @generated from message metalstack.api.v2.TenantMemberServiceUpdateResponse
+ */
+export type TenantMemberServiceUpdateResponse = Message<"metalstack.api.v2.TenantMemberServiceUpdateResponse"> & {
+ /**
+ * Member is the member of this tenant.
+ *
+ * @generated from field: metalstack.api.v2.TenantMember member = 1;
+ */
+ member?: TenantMember | undefined;
+};
+
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceUpdateResponse.
+ * Use `create(TenantMemberServiceUpdateResponseSchema)` to create a new message.
+ */
+export const TenantMemberServiceUpdateResponseSchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_api_v2_tenant_member, 10);
+
+/**
+ * TenantMemberServiceDeleteResponse is the response payload of the tenant member delete request.
+ *
+ * @generated from message metalstack.api.v2.TenantMemberServiceDeleteResponse
+ */
+export type TenantMemberServiceDeleteResponse = Message<"metalstack.api.v2.TenantMemberServiceDeleteResponse"> & {
+ /**
+ * Member is the member of this tenant.
+ *
+ * @generated from field: metalstack.api.v2.TenantMember member = 1;
+ */
+ member?: TenantMember | undefined;
+};
+
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceDeleteResponse.
+ * Use `create(TenantMemberServiceDeleteResponseSchema)` to create a new message.
+ */
+export const TenantMemberServiceDeleteResponseSchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_api_v2_tenant_member, 11);
+
+/**
+ * TenantMemberServiceLeaveRequest is used to leave a tenant. This way a member is not required to ask a tenant owner to remove him.
+ *
+ * @generated from message metalstack.api.v2.TenantMemberServiceLeaveRequest
+ */
+export type TenantMemberServiceLeaveRequest = Message<"metalstack.api.v2.TenantMemberServiceLeaveRequest"> & {
+ /**
+ * Login of the tenant that the user wants to leave.
+ *
+ * @generated from field: string login = 1;
+ */
+ login: string;
+};
+
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceLeaveRequest.
+ * Use `create(TenantMemberServiceLeaveRequestSchema)` to create a new message.
+ */
+export const TenantMemberServiceLeaveRequestSchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_api_v2_tenant_member, 12);
+
+/**
+ * TenantMemberServiceLeaveResponse is the response payload to a leave tenant request.
+ *
+ * @generated from message metalstack.api.v2.TenantMemberServiceLeaveResponse
+ */
+export type TenantMemberServiceLeaveResponse = Message<"metalstack.api.v2.TenantMemberServiceLeaveResponse"> & {
+ /**
+ * Member is the member of this tenant.
+ *
+ * @generated from field: metalstack.api.v2.TenantMember member = 1;
+ */
+ member?: TenantMember | undefined;
+};
+
+/**
+ * Describes the message metalstack.api.v2.TenantMemberServiceLeaveResponse.
+ * Use `create(TenantMemberServiceLeaveResponseSchema)` to create a new message.
+ */
+export const TenantMemberServiceLeaveResponseSchema: GenMessage = /*@__PURE__*/
+ messageDesc(file_metalstack_api_v2_tenant_member, 13);
+
+/**
+ * TenantMemberService provides tenant member management operations.
+ *
+ * @generated from service metalstack.api.v2.TenantMemberService
+ */
+export const TenantMemberService: GenService<{
+ /**
+ * Creates a new tenant member.
+ *
+ * @generated from rpc metalstack.api.v2.TenantMemberService.Create
+ */
+ create: {
+ methodKind: "unary";
+ input: typeof TenantMemberServiceCreateRequestSchema;
+ output: typeof TenantMemberServiceCreateResponseSchema;
+ },
+ /**
+ * Returns the list of tenant members.
+ *
+ * @generated from rpc metalstack.api.v2.TenantMemberService.List
+ */
+ list: {
+ methodKind: "unary";
+ input: typeof TenantMemberServiceListRequestSchema;
+ output: typeof TenantMemberServiceListResponseSchema;
+ },
+ /**
+ * Get a tenant member.
+ *
+ * @generated from rpc metalstack.api.v2.TenantMemberService.Get
+ */
+ get: {
+ methodKind: "unary";
+ input: typeof TenantMemberServiceGetRequestSchema;
+ output: typeof TenantMemberServiceGetResponseSchema;
+ },
+ /**
+ * Update a tenant member.
+ *
+ * @generated from rpc metalstack.api.v2.TenantMemberService.Update
+ */
+ update: {
+ methodKind: "unary";
+ input: typeof TenantMemberServiceUpdateRequestSchema;
+ output: typeof TenantMemberServiceUpdateResponseSchema;
+ },
+ /**
+ * Delete a tenant.
+ *
+ * @generated from rpc metalstack.api.v2.TenantMemberService.Delete
+ */
+ delete: {
+ methodKind: "unary";
+ input: typeof TenantMemberServiceDeleteRequestSchema;
+ output: typeof TenantMemberServiceDeleteResponseSchema;
+ },
+ /**
+ * Leave removes a member from a tenant.
+ *
+ * @generated from rpc metalstack.api.v2.TenantMemberService.Leave
+ */
+ leave: {
+ methodKind: "unary";
+ input: typeof TenantMemberServiceLeaveRequestSchema;
+ output: typeof TenantMemberServiceLeaveResponseSchema;
+ },
+}> = /*@__PURE__*/
+ serviceDesc(file_metalstack_api_v2_tenant_member, 0);
+
diff --git a/js/metalstack/api/v2/tenant_pb.d.ts b/js/metalstack/api/v2/tenant_pb.d.ts
index 75b31aa2..999bd0da 100644
--- a/js/metalstack/api/v2/tenant_pb.d.ts
+++ b/js/metalstack/api/v2/tenant_pb.d.ts
@@ -60,48 +60,6 @@ export type Tenant = Message<"metalstack.api.v2.Tenant"> & {
* Use `create(TenantSchema)` to create a new message.
*/
export declare const TenantSchema: GenMessage;
-/**
- * TenantMember defines a user that participates in a tenant.
- *
- * @generated from message metalstack.api.v2.TenantMember
- */
-export type TenantMember = Message<"metalstack.api.v2.TenantMember"> & {
- /**
- * Id is the user id of the member.
- *
- * @generated from field: string id = 1;
- */
- id: string;
- /**
- * Role is the role of the member.
- *
- * @generated from field: metalstack.api.v2.TenantRole role = 2;
- */
- role: TenantRole;
- /**
- * Projects in which a user is a direct member.
- *
- * @generated from field: repeated string projects = 3;
- */
- projects: string[];
- /**
- * CreatedAt the date when the member was added to the tenant.
- *
- * @generated from field: google.protobuf.Timestamp created_at = 4;
- */
- createdAt?: Timestamp | undefined;
- /**
- * Meta for this tenant member.
- *
- * @generated from field: metalstack.api.v2.Meta meta = 5;
- */
- meta?: Meta | undefined;
-};
-/**
- * Describes the message metalstack.api.v2.TenantMember.
- * Use `create(TenantMemberSchema)` to create a new message.
- */
-export declare const TenantMemberSchema: GenMessage;
/**
* TenantInvite defines invite to tenant.
*
@@ -366,12 +324,6 @@ export type TenantServiceGetResponse = Message<"metalstack.api.v2.TenantServiceG
* @generated from field: metalstack.api.v2.Tenant tenant = 1;
*/
tenant?: Tenant | undefined;
- /**
- * TenantMembers of this tenant.
- *
- * @generated from field: repeated metalstack.api.v2.TenantMember tenant_members = 2;
- */
- tenantMembers: TenantMember[];
};
/**
* Describes the message metalstack.api.v2.TenantServiceGetResponse.
@@ -564,77 +516,6 @@ export type TenantServiceInviteGetResponse = Message<"metalstack.api.v2.TenantSe
* Use `create(TenantServiceInviteGetResponseSchema)` to create a new message.
*/
export declare const TenantServiceInviteGetResponseSchema: GenMessage;
-/**
- * TenantServiceRemoveMemberRequest is used to remove a member from a tenant.
- *
- * @generated from message metalstack.api.v2.TenantServiceRemoveMemberRequest
- */
-export type TenantServiceRemoveMemberRequest = Message<"metalstack.api.v2.TenantServiceRemoveMemberRequest"> & {
- /**
- * Login of the tenant.
- *
- * @generated from field: string login = 1;
- */
- login: string;
- /**
- * Member is the id of the member to remove from this tenant.
- *
- * @generated from field: string member = 2;
- */
- member: string;
-};
-/**
- * Describes the message metalstack.api.v2.TenantServiceRemoveMemberRequest.
- * Use `create(TenantServiceRemoveMemberRequestSchema)` to create a new message.
- */
-export declare const TenantServiceRemoveMemberRequestSchema: GenMessage;
-/**
- * TenantServiceLeaveTenantRequest is used to leave a tenant.
- *
- * @generated from message metalstack.api.v2.TenantServiceLeaveRequest
- */
-export type TenantServiceLeaveRequest = Message<"metalstack.api.v2.TenantServiceLeaveRequest"> & {
- /**
- * Login of the tenant.
- *
- * @generated from field: string login = 1;
- */
- login: string;
-};
-/**
- * Describes the message metalstack.api.v2.TenantServiceLeaveRequest.
- * Use `create(TenantServiceLeaveRequestSchema)` to create a new message.
- */
-export declare const TenantServiceLeaveRequestSchema: GenMessage;
-/**
- * TenantServiceLeaveTenantResponse is the response payload to a leave tenant request.
- *
- * @generated from message metalstack.api.v2.TenantServiceLeaveResponse
- */
-export type TenantServiceLeaveResponse = Message<"metalstack.api.v2.TenantServiceLeaveResponse"> & {};
-/**
- * Describes the message metalstack.api.v2.TenantServiceLeaveResponse.
- * Use `create(TenantServiceLeaveResponseSchema)` to create a new message.
- */
-export declare const TenantServiceLeaveResponseSchema: GenMessage;
-/**
- * TenantServiceRemoveMemberResponse is the response payload to a remove member request.
- *
- * @generated from message metalstack.api.v2.TenantServiceRemoveMemberResponse
- */
-export type TenantServiceRemoveMemberResponse = Message<"metalstack.api.v2.TenantServiceRemoveMemberResponse"> & {
- /**
- * TenantMember is the removed tenant member.
- *
- * @generated from field: metalstack.api.v2.TenantMember tenant_member = 1;
- */
- tenantMember?: TenantMember | undefined;
-};
-/**
- * Describes the message metalstack.api.v2.TenantServiceRemoveMemberResponse.
- * Use `create(TenantServiceRemoveMemberResponseSchema)` to create a new message.
- */
-export declare const TenantServiceRemoveMemberResponseSchema: GenMessage;
/**
* TenantServiceInviteAcceptRequest is the request payload to a accept invite request.
*
@@ -712,102 +593,6 @@ export type TenantServiceInviteDeleteResponse = Message<"metalstack.api.v2.Tenan
* Use `create(TenantServiceInviteDeleteResponseSchema)` to create a new message.
*/
export declare const TenantServiceInviteDeleteResponseSchema: GenMessage;
-/**
- * TenantServiceAddMemberRequest is the request payload for adding a member to a tenant.
- *
- * @generated from message metalstack.api.v2.TenantServiceAddMemberRequest
- */
-export type TenantServiceAddMemberRequest = Message<"metalstack.api.v2.TenantServiceAddMemberRequest"> & {
- /**
- * Login of the tenant to which the member will be added.
- *
- * @generated from field: string login = 1;
- */
- login: string;
- /**
- * Login of the member to add.
- *
- * @generated from field: string member = 2;
- */
- member: string;
- /**
- * Role to assign to the new member.
- *
- * @generated from field: metalstack.api.v2.TenantRole role = 3;
- */
- role: TenantRole;
-};
-/**
- * Describes the message metalstack.api.v2.TenantServiceAddMemberRequest.
- * Use `create(TenantServiceAddMemberRequestSchema)` to create a new message.
- */
-export declare const TenantServiceAddMemberRequestSchema: GenMessage;
-/**
- * TenantServiceAddMemberResponse is the response payload for the add member request.
- *
- * @generated from message metalstack.api.v2.TenantServiceAddMemberResponse
- */
-export type TenantServiceAddMemberResponse = Message<"metalstack.api.v2.TenantServiceAddMemberResponse"> & {
- /**
- * TenantMember is the added tenant member.
- *
- * @generated from field: metalstack.api.v2.TenantMember tenant_member = 1;
- */
- tenantMember?: TenantMember | undefined;
-};
-/**
- * Describes the message metalstack.api.v2.TenantServiceAddMemberResponse.
- * Use `create(TenantServiceAddMemberResponseSchema)` to create a new message.
- */
-export declare const TenantServiceAddMemberResponseSchema: GenMessage;
-/**
- * TenantServiceUpdateMemberRequest is used to update a member from a tenant.
- *
- * @generated from message metalstack.api.v2.TenantServiceUpdateMemberRequest
- */
-export type TenantServiceUpdateMemberRequest = Message<"metalstack.api.v2.TenantServiceUpdateMemberRequest"> & {
- /**
- * Login of the tenant.
- *
- * @generated from field: string login = 1;
- */
- login: string;
- /**
- * Member is the id of the member to update in this tenant.
- *
- * @generated from field: string member = 2;
- */
- member: string;
- /**
- * Role of this user in this tenant.
- *
- * @generated from field: metalstack.api.v2.TenantRole role = 3;
- */
- role: TenantRole;
-};
-/**
- * Describes the message metalstack.api.v2.TenantServiceUpdateMemberRequest.
- * Use `create(TenantServiceUpdateMemberRequestSchema)` to create a new message.
- */
-export declare const TenantServiceUpdateMemberRequestSchema: GenMessage;
-/**
- * TenantServiceUpdateMemberResponse is the response payload to a update member request.
- *
- * @generated from message metalstack.api.v2.TenantServiceUpdateMemberResponse
- */
-export type TenantServiceUpdateMemberResponse = Message<"metalstack.api.v2.TenantServiceUpdateMemberResponse"> & {
- /**
- * TenantMember is the updated membership.
- *
- * @generated from field: metalstack.api.v2.TenantMember tenant_member = 1;
- */
- tenantMember?: TenantMember | undefined;
-};
-/**
- * Describes the message metalstack.api.v2.TenantServiceUpdateMemberResponse.
- * Use `create(TenantServiceUpdateMemberResponseSchema)` to create a new message.
- */
-export declare const TenantServiceUpdateMemberResponseSchema: GenMessage;
/**
* TenantService provides tenant management operations.
*
@@ -864,46 +649,6 @@ export declare const TenantService: GenService<{
input: typeof TenantServiceDeleteRequestSchema;
output: typeof TenantServiceDeleteResponseSchema;
};
- /**
- * Leave removes a member from a tenant.
- *
- * @generated from rpc metalstack.api.v2.TenantService.Leave
- */
- leave: {
- methodKind: "unary";
- input: typeof TenantServiceLeaveRequestSchema;
- output: typeof TenantServiceLeaveResponseSchema;
- };
- /**
- * AddMember adds a member to a tenant.
- *
- * @generated from rpc metalstack.api.v2.TenantService.AddMember
- */
- addMember: {
- methodKind: "unary";
- input: typeof TenantServiceAddMemberRequestSchema;
- output: typeof TenantServiceAddMemberResponseSchema;
- };
- /**
- * RemoveMember removes a member from a tenant.
- *
- * @generated from rpc metalstack.api.v2.TenantService.RemoveMember
- */
- removeMember: {
- methodKind: "unary";
- input: typeof TenantServiceRemoveMemberRequestSchema;
- output: typeof TenantServiceRemoveMemberResponseSchema;
- };
- /**
- * UpdateMember update a member of a tenant.
- *
- * @generated from rpc metalstack.api.v2.TenantService.UpdateMember
- */
- updateMember: {
- methodKind: "unary";
- input: typeof TenantServiceUpdateMemberRequestSchema;
- output: typeof TenantServiceUpdateMemberResponseSchema;
- };
/**
* Invite a user to a tenant.
*
diff --git a/js/metalstack/api/v2/tenant_pb.js b/js/metalstack/api/v2/tenant_pb.js
index 9eb270b6..53610787 100644
--- a/js/metalstack/api/v2/tenant_pb.js
+++ b/js/metalstack/api/v2/tenant_pb.js
@@ -9,167 +9,122 @@ import { file_metalstack_api_v2_predefined_rules } from "./predefined_rules_pb";
/**
* Describes the file metalstack/api/v2/tenant.proto.
*/
-export const file_metalstack_api_v2_tenant = /*@__PURE__*/ fileDesc("Ch5tZXRhbHN0YWNrL2FwaS92Mi90ZW5hbnQucHJvdG8SEW1ldGFsc3RhY2suYXBpLnYyItUBCgZUZW5hbnQSGgoFbG9naW4YASABKAlCC7pICHIGkLSusQIBEiUKBG1ldGEYAiABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhEhkKBG5hbWUYAyABKAlCC7pICHIGwLOusQIBEhYKBWVtYWlsGAQgASgJQge6SARyAmABEiAKC2Rlc2NyaXB0aW9uGAUgASgJQgu6SAhyBsizrrECARIfCgphdmF0YXJfdXJsGAYgASgJQgu6SAhyBuCzrrECARISCgpjcmVhdGVkX2J5GAcgASgJIscBCgxUZW5hbnRNZW1iZXISFwoCaWQYASABKAlCC7pICHIGkLSusQIBEjUKBHJvbGUYAiABKA4yHS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRSb2xlQgi6SAWCAQIQARIQCghwcm9qZWN0cxgDIAMoCRIuCgpjcmVhdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIlCgRtZXRhGAUgASgLMhcubWV0YWxzdGFjay5hcGkudjIuTWV0YSKcAgoMVGVuYW50SW52aXRlEg4KBnNlY3JldBgBIAEoCRIVCg10YXJnZXRfdGVuYW50GAIgASgJEjUKBHJvbGUYAyABKA4yHS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRSb2xlQgi6SAWCAQIQARIOCgZqb2luZWQYBCABKAgSGgoSdGFyZ2V0X3RlbmFudF9uYW1lGAUgASgJEg4KBnRlbmFudBgGIAEoCRITCgt0ZW5hbnRfbmFtZRgHIAEoCRIuCgpleHBpcmVzX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBItCglqb2luZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIkkKGFRlbmFudFNlcnZpY2VMaXN0UmVxdWVzdBItCgVxdWVyeRgBIAEoCzIeLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFF1ZXJ5IscBCgtUZW5hbnRRdWVyeRIfCgVsb2dpbhgBIAEoCUILukgIcgaQtK6xAgFIAIgBARIeCgRuYW1lGAIgASgJQgu6SAhyBsCzrrECAUgBiAEBEi4KBmxhYmVscxgDIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0gCiAEBEikKBnBhZ2luZxgEIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLlBhZ2luZ0IICgZfbG9naW5CBwoFX25hbWVCCQoHX2xhYmVscyIoChdUZW5hbnRTZXJ2aWNlR2V0UmVxdWVzdBINCgVsb2dpbhgBIAEoCSL1AQoaVGVuYW50U2VydmljZUNyZWF0ZVJlcXVlc3QSGQoEbmFtZRgBIAEoCUILukgIcgbAs66xAgESJQoLZGVzY3JpcHRpb24YAiABKAlCC7pICHIGyLOusQIBSACIAQESGwoFZW1haWwYAyABKAlCB7pIBHICYAFIAYgBARIkCgphdmF0YXJfdXJsGAQgASgJQgu6SAhyBuCzrrECAUgCiAEBEikKBmxhYmVscxgFIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0IOCgxfZGVzY3JpcHRpb25CCAoGX2VtYWlsQg0KC19hdmF0YXJfdXJsIvECChpUZW5hbnRTZXJ2aWNlVXBkYXRlUmVxdWVzdBIaCgVsb2dpbhgBIAEoCUILukgIcgaQtK6xAgESOgoLdXBkYXRlX21ldGEYAiABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5VcGRhdGVNZXRhQga6SAPIAQESHgoEbmFtZRgDIAEoCUILukgIcgbAs66xAgFIAIgBARIbCgVlbWFpbBgEIAEoCUIHukgEcgJgAUgBiAEBEiUKC2Rlc2NyaXB0aW9uGAUgASgJQgu6SAhyBsizrrECAUgCiAEBEiQKCmF2YXRhcl91cmwYBiABKAlCC7pICHIG4LOusQIBSAOIAQESNAoGbGFiZWxzGAcgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTGFiZWxzSASIAQFCBwoFX25hbWVCCAoGX2VtYWlsQg4KDF9kZXNjcmlwdGlvbkINCgtfYXZhdGFyX3VybEIJCgdfbGFiZWxzIjgKGlRlbmFudFNlcnZpY2VEZWxldGVSZXF1ZXN0EhoKBWxvZ2luGAEgASgJQgu6SAhyBpC0rrECASJ+ChhUZW5hbnRTZXJ2aWNlR2V0UmVzcG9uc2USKQoGdGVuYW50GAEgASgLMhkubWV0YWxzdGFjay5hcGkudjIuVGVuYW50EjcKDnRlbmFudF9tZW1iZXJzGAIgAygLMh8ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50TWVtYmVyIkcKGVRlbmFudFNlcnZpY2VMaXN0UmVzcG9uc2USKgoHdGVuYW50cxgBIAMoCzIZLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudCJIChtUZW5hbnRTZXJ2aWNlQ3JlYXRlUmVzcG9uc2USKQoGdGVuYW50GAEgASgLMhkubWV0YWxzdGFjay5hcGkudjIuVGVuYW50IkgKG1RlbmFudFNlcnZpY2VVcGRhdGVSZXNwb25zZRIpCgZ0ZW5hbnQYASABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnQiSAobVGVuYW50U2VydmljZURlbGV0ZVJlc3BvbnNlEikKBnRlbmFudBgBIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudCJvChpUZW5hbnRTZXJ2aWNlSW52aXRlUmVxdWVzdBIaCgVsb2dpbhgBIAEoCUILukgIcgaQtK6xAgESNQoEcm9sZRgCIAEoDjIdLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFJvbGVCCLpIBYIBAhABIk4KG1RlbmFudFNlcnZpY2VJbnZpdGVSZXNwb25zZRIvCgZpbnZpdGUYASABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRJbnZpdGUiPQofVGVuYW50U2VydmljZUludml0ZXNMaXN0UmVxdWVzdBIaCgVsb2dpbhgBIAEoCUILukgIcgaQtK6xAgEiVAogVGVuYW50U2VydmljZUludml0ZXNMaXN0UmVzcG9uc2USMAoHaW52aXRlcxgBIAMoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudEludml0ZSIvCh1UZW5hbnRTZXJ2aWNlSW52aXRlR2V0UmVxdWVzdBIOCgZzZWNyZXQYASABKAkiUQoeVGVuYW50U2VydmljZUludml0ZUdldFJlc3BvbnNlEi8KBmludml0ZRgBIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudEludml0ZSJOCiBUZW5hbnRTZXJ2aWNlUmVtb3ZlTWVtYmVyUmVxdWVzdBIaCgVsb2dpbhgBIAEoCUILukgIcgaQtK6xAgESDgoGbWVtYmVyGAIgASgJIjcKGVRlbmFudFNlcnZpY2VMZWF2ZVJlcXVlc3QSGgoFbG9naW4YASABKAlCC7pICHIGkLSusQIBIhwKGlRlbmFudFNlcnZpY2VMZWF2ZVJlc3BvbnNlIlsKIVRlbmFudFNlcnZpY2VSZW1vdmVNZW1iZXJSZXNwb25zZRI2Cg10ZW5hbnRfbWVtYmVyGAEgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50TWVtYmVyIjIKIFRlbmFudFNlcnZpY2VJbnZpdGVBY2NlcHRSZXF1ZXN0Eg4KBnNlY3JldBgBIAEoCSJICiFUZW5hbnRTZXJ2aWNlSW52aXRlQWNjZXB0UmVzcG9uc2USDgoGdGVuYW50GAEgASgJEhMKC3RlbmFudF9uYW1lGAIgASgJIk4KIFRlbmFudFNlcnZpY2VJbnZpdGVEZWxldGVSZXF1ZXN0EhoKBWxvZ2luGAEgASgJQgu6SAhyBpC0rrECARIOCgZzZWNyZXQYAiABKAkiIwohVGVuYW50U2VydmljZUludml0ZURlbGV0ZVJlc3BvbnNlIo8BCh1UZW5hbnRTZXJ2aWNlQWRkTWVtYmVyUmVxdWVzdBIaCgVsb2dpbhgBIAEoCUILukgIcgaQtK6xAgESGwoGbWVtYmVyGAIgASgJQgu6SAhyBpC0rrECARI1CgRyb2xlGAMgASgOMh0ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50Um9sZUIIukgFggECEAEiWAoeVGVuYW50U2VydmljZUFkZE1lbWJlclJlc3BvbnNlEjYKDXRlbmFudF9tZW1iZXIYASABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRNZW1iZXIikgEKIFRlbmFudFNlcnZpY2VVcGRhdGVNZW1iZXJSZXF1ZXN0EhoKBWxvZ2luGAEgASgJQgu6SAhyBpC0rrECARIbCgZtZW1iZXIYAiABKAlCC7pICHIGkLSusQIBEjUKBHJvbGUYAyABKA4yHS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRSb2xlQgi6SAWCAQIQASJbCiFUZW5hbnRTZXJ2aWNlVXBkYXRlTWVtYmVyUmVzcG9uc2USNgoNdGVuYW50X21lbWJlchgBIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudE1lbWJlcjLFDQoNVGVuYW50U2VydmljZRJxCgZDcmVhdGUSLS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRTZXJ2aWNlQ3JlYXRlUmVxdWVzdBouLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFNlcnZpY2VDcmVhdGVSZXNwb25zZSII2PMYAuDzGAESawoETGlzdBIrLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFNlcnZpY2VMaXN0UmVxdWVzdBosLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFNlcnZpY2VMaXN0UmVzcG9uc2UiCNjzGALg8xgCEmwKA0dldBIqLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFNlcnZpY2VHZXRSZXF1ZXN0GisubWV0YWxzdGFjay5hcGkudjIuVGVuYW50U2VydmljZUdldFJlc3BvbnNlIgzC8xgEAQIDBODzGAIScwoGVXBkYXRlEi0ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50U2VydmljZVVwZGF0ZVJlcXVlc3QaLi5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRTZXJ2aWNlVXBkYXRlUmVzcG9uc2UiCsLzGAIBAuDzGAEScwoGRGVsZXRlEi0ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50U2VydmljZURlbGV0ZVJlcXVlc3QaLi5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRTZXJ2aWNlRGVsZXRlUmVzcG9uc2UiCsLzGAIBAuDzGAESbwoFTGVhdmUSLC5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRTZXJ2aWNlTGVhdmVSZXF1ZXN0Gi0ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50U2VydmljZUxlYXZlUmVzcG9uc2UiCcLzGAED4PMYARJ8CglBZGRNZW1iZXISMC5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRTZXJ2aWNlQWRkTWVtYmVyUmVxdWVzdBoxLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFNlcnZpY2VBZGRNZW1iZXJSZXNwb25zZSIKwvMYAgEC4PMYARKEAQoMUmVtb3ZlTWVtYmVyEjMubWV0YWxzdGFjay5hcGkudjIuVGVuYW50U2VydmljZVJlbW92ZU1lbWJlclJlcXVlc3QaNC5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRTZXJ2aWNlUmVtb3ZlTWVtYmVyUmVzcG9uc2UiCcLzGAEB4PMYARKEAQoMVXBkYXRlTWVtYmVyEjMubWV0YWxzdGFjay5hcGkudjIuVGVuYW50U2VydmljZVVwZGF0ZU1lbWJlclJlcXVlc3QaNC5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRTZXJ2aWNlVXBkYXRlTWVtYmVyUmVzcG9uc2UiCcLzGAEB4PMYARJyCgZJbnZpdGUSLS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRTZXJ2aWNlSW52aXRlUmVxdWVzdBouLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFNlcnZpY2VJbnZpdGVSZXNwb25zZSIJwvMYAQHg8xgBEoMBCgxJbnZpdGVBY2NlcHQSMy5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRTZXJ2aWNlSW52aXRlQWNjZXB0UmVxdWVzdBo0Lm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFNlcnZpY2VJbnZpdGVBY2NlcHRSZXNwb25zZSII2PMYAuDzGAEShAEKDEludml0ZURlbGV0ZRIzLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFNlcnZpY2VJbnZpdGVEZWxldGVSZXF1ZXN0GjQubWV0YWxzdGFjay5hcGkudjIuVGVuYW50U2VydmljZUludml0ZURlbGV0ZVJlc3BvbnNlIgnC8xgBAeDzGAESgQEKC0ludml0ZXNMaXN0EjIubWV0YWxzdGFjay5hcGkudjIuVGVuYW50U2VydmljZUludml0ZXNMaXN0UmVxdWVzdBozLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFNlcnZpY2VJbnZpdGVzTGlzdFJlc3BvbnNlIgnC8xgBAeDzGAISegoJSW52aXRlR2V0EjAubWV0YWxzdGFjay5hcGkudjIuVGVuYW50U2VydmljZUludml0ZUdldFJlcXVlc3QaMS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRTZXJ2aWNlSW52aXRlR2V0UmVzcG9uc2UiCNjzGALg8xgCQsEBChVjb20ubWV0YWxzdGFjay5hcGkudjJCC1RlbmFudFByb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules]);
+export const file_metalstack_api_v2_tenant = /*@__PURE__*/ fileDesc("Ch5tZXRhbHN0YWNrL2FwaS92Mi90ZW5hbnQucHJvdG8SEW1ldGFsc3RhY2suYXBpLnYyItUBCgZUZW5hbnQSGgoFbG9naW4YASABKAlCC7pICHIGkLSusQIBEiUKBG1ldGEYAiABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhEhkKBG5hbWUYAyABKAlCC7pICHIGwLOusQIBEhYKBWVtYWlsGAQgASgJQge6SARyAmABEiAKC2Rlc2NyaXB0aW9uGAUgASgJQgu6SAhyBsizrrECARIfCgphdmF0YXJfdXJsGAYgASgJQgu6SAhyBuCzrrECARISCgpjcmVhdGVkX2J5GAcgASgJIpwCCgxUZW5hbnRJbnZpdGUSDgoGc2VjcmV0GAEgASgJEhUKDXRhcmdldF90ZW5hbnQYAiABKAkSNQoEcm9sZRgDIAEoDjIdLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFJvbGVCCLpIBYIBAhABEg4KBmpvaW5lZBgEIAEoCBIaChJ0YXJnZXRfdGVuYW50X25hbWUYBSABKAkSDgoGdGVuYW50GAYgASgJEhMKC3RlbmFudF9uYW1lGAcgASgJEi4KCmV4cGlyZXNfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi0KCWpvaW5lZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiSQoYVGVuYW50U2VydmljZUxpc3RSZXF1ZXN0Ei0KBXF1ZXJ5GAEgASgLMh4ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50UXVlcnkixwEKC1RlbmFudFF1ZXJ5Eh8KBWxvZ2luGAEgASgJQgu6SAhyBpC0rrECAUgAiAEBEh4KBG5hbWUYAiABKAlCC7pICHIGwLOusQIBSAGIAQESLgoGbGFiZWxzGAMgASgLMhkubWV0YWxzdGFjay5hcGkudjIuTGFiZWxzSAKIAQESKQoGcGFnaW5nGAQgASgLMhkubWV0YWxzdGFjay5hcGkudjIuUGFnaW5nQggKBl9sb2dpbkIHCgVfbmFtZUIJCgdfbGFiZWxzIigKF1RlbmFudFNlcnZpY2VHZXRSZXF1ZXN0Eg0KBWxvZ2luGAEgASgJIvUBChpUZW5hbnRTZXJ2aWNlQ3JlYXRlUmVxdWVzdBIZCgRuYW1lGAEgASgJQgu6SAhyBsCzrrECARIlCgtkZXNjcmlwdGlvbhgCIAEoCUILukgIcgbIs66xAgFIAIgBARIbCgVlbWFpbBgDIAEoCUIHukgEcgJgAUgBiAEBEiQKCmF2YXRhcl91cmwYBCABKAlCC7pICHIG4LOusQIBSAKIAQESKQoGbGFiZWxzGAUgASgLMhkubWV0YWxzdGFjay5hcGkudjIuTGFiZWxzQg4KDF9kZXNjcmlwdGlvbkIICgZfZW1haWxCDQoLX2F2YXRhcl91cmwi8QIKGlRlbmFudFNlcnZpY2VVcGRhdGVSZXF1ZXN0EhoKBWxvZ2luGAEgASgJQgu6SAhyBpC0rrECARI6Cgt1cGRhdGVfbWV0YRgCIAEoCzIdLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZU1ldGFCBrpIA8gBARIeCgRuYW1lGAMgASgJQgu6SAhyBsCzrrECAUgAiAEBEhsKBWVtYWlsGAQgASgJQge6SARyAmABSAGIAQESJQoLZGVzY3JpcHRpb24YBSABKAlCC7pICHIGyLOusQIBSAKIAQESJAoKYXZhdGFyX3VybBgGIAEoCUILukgIcgbgs66xAgFIA4gBARI0CgZsYWJlbHMYByABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5VcGRhdGVMYWJlbHNIBIgBAUIHCgVfbmFtZUIICgZfZW1haWxCDgoMX2Rlc2NyaXB0aW9uQg0KC19hdmF0YXJfdXJsQgkKB19sYWJlbHMiOAoaVGVuYW50U2VydmljZURlbGV0ZVJlcXVlc3QSGgoFbG9naW4YASABKAlCC7pICHIGkLSusQIBIkUKGFRlbmFudFNlcnZpY2VHZXRSZXNwb25zZRIpCgZ0ZW5hbnQYASABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnQiRwoZVGVuYW50U2VydmljZUxpc3RSZXNwb25zZRIqCgd0ZW5hbnRzGAEgAygLMhkubWV0YWxzdGFjay5hcGkudjIuVGVuYW50IkgKG1RlbmFudFNlcnZpY2VDcmVhdGVSZXNwb25zZRIpCgZ0ZW5hbnQYASABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnQiSAobVGVuYW50U2VydmljZVVwZGF0ZVJlc3BvbnNlEikKBnRlbmFudBgBIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudCJIChtUZW5hbnRTZXJ2aWNlRGVsZXRlUmVzcG9uc2USKQoGdGVuYW50GAEgASgLMhkubWV0YWxzdGFjay5hcGkudjIuVGVuYW50Im8KGlRlbmFudFNlcnZpY2VJbnZpdGVSZXF1ZXN0EhoKBWxvZ2luGAEgASgJQgu6SAhyBpC0rrECARI1CgRyb2xlGAIgASgOMh0ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50Um9sZUIIukgFggECEAEiTgobVGVuYW50U2VydmljZUludml0ZVJlc3BvbnNlEi8KBmludml0ZRgBIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudEludml0ZSI9Ch9UZW5hbnRTZXJ2aWNlSW52aXRlc0xpc3RSZXF1ZXN0EhoKBWxvZ2luGAEgASgJQgu6SAhyBpC0rrECASJUCiBUZW5hbnRTZXJ2aWNlSW52aXRlc0xpc3RSZXNwb25zZRIwCgdpbnZpdGVzGAEgAygLMh8ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50SW52aXRlIi8KHVRlbmFudFNlcnZpY2VJbnZpdGVHZXRSZXF1ZXN0Eg4KBnNlY3JldBgBIAEoCSJRCh5UZW5hbnRTZXJ2aWNlSW52aXRlR2V0UmVzcG9uc2USLwoGaW52aXRlGAEgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50SW52aXRlIjIKIFRlbmFudFNlcnZpY2VJbnZpdGVBY2NlcHRSZXF1ZXN0Eg4KBnNlY3JldBgBIAEoCSJICiFUZW5hbnRTZXJ2aWNlSW52aXRlQWNjZXB0UmVzcG9uc2USDgoGdGVuYW50GAEgASgJEhMKC3RlbmFudF9uYW1lGAIgASgJIk4KIFRlbmFudFNlcnZpY2VJbnZpdGVEZWxldGVSZXF1ZXN0EhoKBWxvZ2luGAEgASgJQgu6SAhyBpC0rrECARIOCgZzZWNyZXQYAiABKAkiIwohVGVuYW50U2VydmljZUludml0ZURlbGV0ZVJlc3BvbnNlMsgJCg1UZW5hbnRTZXJ2aWNlEnEKBkNyZWF0ZRItLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFNlcnZpY2VDcmVhdGVSZXF1ZXN0Gi4ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50U2VydmljZUNyZWF0ZVJlc3BvbnNlIgjY8xgC4PMYARJrCgRMaXN0EisubWV0YWxzdGFjay5hcGkudjIuVGVuYW50U2VydmljZUxpc3RSZXF1ZXN0GiwubWV0YWxzdGFjay5hcGkudjIuVGVuYW50U2VydmljZUxpc3RSZXNwb25zZSII2PMYAuDzGAISbAoDR2V0EioubWV0YWxzdGFjay5hcGkudjIuVGVuYW50U2VydmljZUdldFJlcXVlc3QaKy5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRTZXJ2aWNlR2V0UmVzcG9uc2UiDMLzGAQBAgME4PMYAhJzCgZVcGRhdGUSLS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRTZXJ2aWNlVXBkYXRlUmVxdWVzdBouLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFNlcnZpY2VVcGRhdGVSZXNwb25zZSIKwvMYAgEC4PMYARJzCgZEZWxldGUSLS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRTZXJ2aWNlRGVsZXRlUmVxdWVzdBouLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFNlcnZpY2VEZWxldGVSZXNwb25zZSIKwvMYAgEC4PMYARJyCgZJbnZpdGUSLS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRTZXJ2aWNlSW52aXRlUmVxdWVzdBouLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFNlcnZpY2VJbnZpdGVSZXNwb25zZSIJwvMYAQHg8xgBEoMBCgxJbnZpdGVBY2NlcHQSMy5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRTZXJ2aWNlSW52aXRlQWNjZXB0UmVxdWVzdBo0Lm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFNlcnZpY2VJbnZpdGVBY2NlcHRSZXNwb25zZSII2PMYAuDzGAEShAEKDEludml0ZURlbGV0ZRIzLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFNlcnZpY2VJbnZpdGVEZWxldGVSZXF1ZXN0GjQubWV0YWxzdGFjay5hcGkudjIuVGVuYW50U2VydmljZUludml0ZURlbGV0ZVJlc3BvbnNlIgnC8xgBAeDzGAESgQEKC0ludml0ZXNMaXN0EjIubWV0YWxzdGFjay5hcGkudjIuVGVuYW50U2VydmljZUludml0ZXNMaXN0UmVxdWVzdBozLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFNlcnZpY2VJbnZpdGVzTGlzdFJlc3BvbnNlIgnC8xgBAeDzGAISegoJSW52aXRlR2V0EjAubWV0YWxzdGFjay5hcGkudjIuVGVuYW50U2VydmljZUludml0ZUdldFJlcXVlc3QaMS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRTZXJ2aWNlSW52aXRlR2V0UmVzcG9uc2UiCNjzGALg8xgCQsEBChVjb20ubWV0YWxzdGFjay5hcGkudjJCC1RlbmFudFByb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules]);
/**
* Describes the message metalstack.api.v2.Tenant.
* Use `create(TenantSchema)` to create a new message.
*/
export const TenantSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 0);
-/**
- * Describes the message metalstack.api.v2.TenantMember.
- * Use `create(TenantMemberSchema)` to create a new message.
- */
-export const TenantMemberSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 1);
/**
* Describes the message metalstack.api.v2.TenantInvite.
* Use `create(TenantInviteSchema)` to create a new message.
*/
-export const TenantInviteSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 2);
+export const TenantInviteSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 1);
/**
* Describes the message metalstack.api.v2.TenantServiceListRequest.
* Use `create(TenantServiceListRequestSchema)` to create a new message.
*/
-export const TenantServiceListRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 3);
+export const TenantServiceListRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 2);
/**
* Describes the message metalstack.api.v2.TenantQuery.
* Use `create(TenantQuerySchema)` to create a new message.
*/
-export const TenantQuerySchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 4);
+export const TenantQuerySchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 3);
/**
* Describes the message metalstack.api.v2.TenantServiceGetRequest.
* Use `create(TenantServiceGetRequestSchema)` to create a new message.
*/
-export const TenantServiceGetRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 5);
+export const TenantServiceGetRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 4);
/**
* Describes the message metalstack.api.v2.TenantServiceCreateRequest.
* Use `create(TenantServiceCreateRequestSchema)` to create a new message.
*/
-export const TenantServiceCreateRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 6);
+export const TenantServiceCreateRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 5);
/**
* Describes the message metalstack.api.v2.TenantServiceUpdateRequest.
* Use `create(TenantServiceUpdateRequestSchema)` to create a new message.
*/
-export const TenantServiceUpdateRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 7);
+export const TenantServiceUpdateRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 6);
/**
* Describes the message metalstack.api.v2.TenantServiceDeleteRequest.
* Use `create(TenantServiceDeleteRequestSchema)` to create a new message.
*/
-export const TenantServiceDeleteRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 8);
+export const TenantServiceDeleteRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 7);
/**
* Describes the message metalstack.api.v2.TenantServiceGetResponse.
* Use `create(TenantServiceGetResponseSchema)` to create a new message.
*/
-export const TenantServiceGetResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 9);
+export const TenantServiceGetResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 8);
/**
* Describes the message metalstack.api.v2.TenantServiceListResponse.
* Use `create(TenantServiceListResponseSchema)` to create a new message.
*/
-export const TenantServiceListResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 10);
+export const TenantServiceListResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 9);
/**
* Describes the message metalstack.api.v2.TenantServiceCreateResponse.
* Use `create(TenantServiceCreateResponseSchema)` to create a new message.
*/
-export const TenantServiceCreateResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 11);
+export const TenantServiceCreateResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 10);
/**
* Describes the message metalstack.api.v2.TenantServiceUpdateResponse.
* Use `create(TenantServiceUpdateResponseSchema)` to create a new message.
*/
-export const TenantServiceUpdateResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 12);
+export const TenantServiceUpdateResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 11);
/**
* Describes the message metalstack.api.v2.TenantServiceDeleteResponse.
* Use `create(TenantServiceDeleteResponseSchema)` to create a new message.
*/
-export const TenantServiceDeleteResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 13);
+export const TenantServiceDeleteResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 12);
/**
* Describes the message metalstack.api.v2.TenantServiceInviteRequest.
* Use `create(TenantServiceInviteRequestSchema)` to create a new message.
*/
-export const TenantServiceInviteRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 14);
+export const TenantServiceInviteRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 13);
/**
* Describes the message metalstack.api.v2.TenantServiceInviteResponse.
* Use `create(TenantServiceInviteResponseSchema)` to create a new message.
*/
-export const TenantServiceInviteResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 15);
+export const TenantServiceInviteResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 14);
/**
* Describes the message metalstack.api.v2.TenantServiceInvitesListRequest.
* Use `create(TenantServiceInvitesListRequestSchema)` to create a new message.
*/
-export const TenantServiceInvitesListRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 16);
+export const TenantServiceInvitesListRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 15);
/**
* Describes the message metalstack.api.v2.TenantServiceInvitesListResponse.
* Use `create(TenantServiceInvitesListResponseSchema)` to create a new message.
*/
-export const TenantServiceInvitesListResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 17);
+export const TenantServiceInvitesListResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 16);
/**
* Describes the message metalstack.api.v2.TenantServiceInviteGetRequest.
* Use `create(TenantServiceInviteGetRequestSchema)` to create a new message.
*/
-export const TenantServiceInviteGetRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 18);
+export const TenantServiceInviteGetRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 17);
/**
* Describes the message metalstack.api.v2.TenantServiceInviteGetResponse.
* Use `create(TenantServiceInviteGetResponseSchema)` to create a new message.
*/
-export const TenantServiceInviteGetResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 19);
-/**
- * Describes the message metalstack.api.v2.TenantServiceRemoveMemberRequest.
- * Use `create(TenantServiceRemoveMemberRequestSchema)` to create a new message.
- */
-export const TenantServiceRemoveMemberRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 20);
-/**
- * Describes the message metalstack.api.v2.TenantServiceLeaveRequest.
- * Use `create(TenantServiceLeaveRequestSchema)` to create a new message.
- */
-export const TenantServiceLeaveRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 21);
-/**
- * Describes the message metalstack.api.v2.TenantServiceLeaveResponse.
- * Use `create(TenantServiceLeaveResponseSchema)` to create a new message.
- */
-export const TenantServiceLeaveResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 22);
-/**
- * Describes the message metalstack.api.v2.TenantServiceRemoveMemberResponse.
- * Use `create(TenantServiceRemoveMemberResponseSchema)` to create a new message.
- */
-export const TenantServiceRemoveMemberResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 23);
+export const TenantServiceInviteGetResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 18);
/**
* Describes the message metalstack.api.v2.TenantServiceInviteAcceptRequest.
* Use `create(TenantServiceInviteAcceptRequestSchema)` to create a new message.
*/
-export const TenantServiceInviteAcceptRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 24);
+export const TenantServiceInviteAcceptRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 19);
/**
* Describes the message metalstack.api.v2.TenantServiceInviteAcceptResponse.
* Use `create(TenantServiceInviteAcceptResponseSchema)` to create a new message.
*/
-export const TenantServiceInviteAcceptResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 25);
+export const TenantServiceInviteAcceptResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 20);
/**
* Describes the message metalstack.api.v2.TenantServiceInviteDeleteRequest.
* Use `create(TenantServiceInviteDeleteRequestSchema)` to create a new message.
*/
-export const TenantServiceInviteDeleteRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 26);
+export const TenantServiceInviteDeleteRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 21);
/**
* Describes the message metalstack.api.v2.TenantServiceInviteDeleteResponse.
* Use `create(TenantServiceInviteDeleteResponseSchema)` to create a new message.
*/
-export const TenantServiceInviteDeleteResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 27);
-/**
- * Describes the message metalstack.api.v2.TenantServiceAddMemberRequest.
- * Use `create(TenantServiceAddMemberRequestSchema)` to create a new message.
- */
-export const TenantServiceAddMemberRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 28);
-/**
- * Describes the message metalstack.api.v2.TenantServiceAddMemberResponse.
- * Use `create(TenantServiceAddMemberResponseSchema)` to create a new message.
- */
-export const TenantServiceAddMemberResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 29);
-/**
- * Describes the message metalstack.api.v2.TenantServiceUpdateMemberRequest.
- * Use `create(TenantServiceUpdateMemberRequestSchema)` to create a new message.
- */
-export const TenantServiceUpdateMemberRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 30);
-/**
- * Describes the message metalstack.api.v2.TenantServiceUpdateMemberResponse.
- * Use `create(TenantServiceUpdateMemberResponseSchema)` to create a new message.
- */
-export const TenantServiceUpdateMemberResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 31);
+export const TenantServiceInviteDeleteResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_tenant, 22);
/**
* TenantService provides tenant management operations.
*
diff --git a/js/metalstack/api/v2/tenant_pb.ts b/js/metalstack/api/v2/tenant_pb.ts
index e327cdbc..60ef5071 100644
--- a/js/metalstack/api/v2/tenant_pb.ts
+++ b/js/metalstack/api/v2/tenant_pb.ts
@@ -16,7 +16,7 @@ import type { Message } from "@bufbuild/protobuf";
* Describes the file metalstack/api/v2/tenant.proto.
*/
export const file_metalstack_api_v2_tenant: GenFile = /*@__PURE__*/
- fileDesc("Ch5tZXRhbHN0YWNrL2FwaS92Mi90ZW5hbnQucHJvdG8SEW1ldGFsc3RhY2suYXBpLnYyItUBCgZUZW5hbnQSGgoFbG9naW4YASABKAlCC7pICHIGkLSusQIBEiUKBG1ldGEYAiABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhEhkKBG5hbWUYAyABKAlCC7pICHIGwLOusQIBEhYKBWVtYWlsGAQgASgJQge6SARyAmABEiAKC2Rlc2NyaXB0aW9uGAUgASgJQgu6SAhyBsizrrECARIfCgphdmF0YXJfdXJsGAYgASgJQgu6SAhyBuCzrrECARISCgpjcmVhdGVkX2J5GAcgASgJIscBCgxUZW5hbnRNZW1iZXISFwoCaWQYASABKAlCC7pICHIGkLSusQIBEjUKBHJvbGUYAiABKA4yHS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRSb2xlQgi6SAWCAQIQARIQCghwcm9qZWN0cxgDIAMoCRIuCgpjcmVhdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIlCgRtZXRhGAUgASgLMhcubWV0YWxzdGFjay5hcGkudjIuTWV0YSKcAgoMVGVuYW50SW52aXRlEg4KBnNlY3JldBgBIAEoCRIVCg10YXJnZXRfdGVuYW50GAIgASgJEjUKBHJvbGUYAyABKA4yHS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRSb2xlQgi6SAWCAQIQARIOCgZqb2luZWQYBCABKAgSGgoSdGFyZ2V0X3RlbmFudF9uYW1lGAUgASgJEg4KBnRlbmFudBgGIAEoCRITCgt0ZW5hbnRfbmFtZRgHIAEoCRIuCgpleHBpcmVzX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBItCglqb2luZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIkkKGFRlbmFudFNlcnZpY2VMaXN0UmVxdWVzdBItCgVxdWVyeRgBIAEoCzIeLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFF1ZXJ5IscBCgtUZW5hbnRRdWVyeRIfCgVsb2dpbhgBIAEoCUILukgIcgaQtK6xAgFIAIgBARIeCgRuYW1lGAIgASgJQgu6SAhyBsCzrrECAUgBiAEBEi4KBmxhYmVscxgDIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0gCiAEBEikKBnBhZ2luZxgEIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLlBhZ2luZ0IICgZfbG9naW5CBwoFX25hbWVCCQoHX2xhYmVscyIoChdUZW5hbnRTZXJ2aWNlR2V0UmVxdWVzdBINCgVsb2dpbhgBIAEoCSL1AQoaVGVuYW50U2VydmljZUNyZWF0ZVJlcXVlc3QSGQoEbmFtZRgBIAEoCUILukgIcgbAs66xAgESJQoLZGVzY3JpcHRpb24YAiABKAlCC7pICHIGyLOusQIBSACIAQESGwoFZW1haWwYAyABKAlCB7pIBHICYAFIAYgBARIkCgphdmF0YXJfdXJsGAQgASgJQgu6SAhyBuCzrrECAUgCiAEBEikKBmxhYmVscxgFIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0IOCgxfZGVzY3JpcHRpb25CCAoGX2VtYWlsQg0KC19hdmF0YXJfdXJsIvECChpUZW5hbnRTZXJ2aWNlVXBkYXRlUmVxdWVzdBIaCgVsb2dpbhgBIAEoCUILukgIcgaQtK6xAgESOgoLdXBkYXRlX21ldGEYAiABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5VcGRhdGVNZXRhQga6SAPIAQESHgoEbmFtZRgDIAEoCUILukgIcgbAs66xAgFIAIgBARIbCgVlbWFpbBgEIAEoCUIHukgEcgJgAUgBiAEBEiUKC2Rlc2NyaXB0aW9uGAUgASgJQgu6SAhyBsizrrECAUgCiAEBEiQKCmF2YXRhcl91cmwYBiABKAlCC7pICHIG4LOusQIBSAOIAQESNAoGbGFiZWxzGAcgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTGFiZWxzSASIAQFCBwoFX25hbWVCCAoGX2VtYWlsQg4KDF9kZXNjcmlwdGlvbkINCgtfYXZhdGFyX3VybEIJCgdfbGFiZWxzIjgKGlRlbmFudFNlcnZpY2VEZWxldGVSZXF1ZXN0EhoKBWxvZ2luGAEgASgJQgu6SAhyBpC0rrECASJ+ChhUZW5hbnRTZXJ2aWNlR2V0UmVzcG9uc2USKQoGdGVuYW50GAEgASgLMhkubWV0YWxzdGFjay5hcGkudjIuVGVuYW50EjcKDnRlbmFudF9tZW1iZXJzGAIgAygLMh8ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50TWVtYmVyIkcKGVRlbmFudFNlcnZpY2VMaXN0UmVzcG9uc2USKgoHdGVuYW50cxgBIAMoCzIZLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudCJIChtUZW5hbnRTZXJ2aWNlQ3JlYXRlUmVzcG9uc2USKQoGdGVuYW50GAEgASgLMhkubWV0YWxzdGFjay5hcGkudjIuVGVuYW50IkgKG1RlbmFudFNlcnZpY2VVcGRhdGVSZXNwb25zZRIpCgZ0ZW5hbnQYASABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnQiSAobVGVuYW50U2VydmljZURlbGV0ZVJlc3BvbnNlEikKBnRlbmFudBgBIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudCJvChpUZW5hbnRTZXJ2aWNlSW52aXRlUmVxdWVzdBIaCgVsb2dpbhgBIAEoCUILukgIcgaQtK6xAgESNQoEcm9sZRgCIAEoDjIdLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFJvbGVCCLpIBYIBAhABIk4KG1RlbmFudFNlcnZpY2VJbnZpdGVSZXNwb25zZRIvCgZpbnZpdGUYASABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRJbnZpdGUiPQofVGVuYW50U2VydmljZUludml0ZXNMaXN0UmVxdWVzdBIaCgVsb2dpbhgBIAEoCUILukgIcgaQtK6xAgEiVAogVGVuYW50U2VydmljZUludml0ZXNMaXN0UmVzcG9uc2USMAoHaW52aXRlcxgBIAMoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudEludml0ZSIvCh1UZW5hbnRTZXJ2aWNlSW52aXRlR2V0UmVxdWVzdBIOCgZzZWNyZXQYASABKAkiUQoeVGVuYW50U2VydmljZUludml0ZUdldFJlc3BvbnNlEi8KBmludml0ZRgBIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudEludml0ZSJOCiBUZW5hbnRTZXJ2aWNlUmVtb3ZlTWVtYmVyUmVxdWVzdBIaCgVsb2dpbhgBIAEoCUILukgIcgaQtK6xAgESDgoGbWVtYmVyGAIgASgJIjcKGVRlbmFudFNlcnZpY2VMZWF2ZVJlcXVlc3QSGgoFbG9naW4YASABKAlCC7pICHIGkLSusQIBIhwKGlRlbmFudFNlcnZpY2VMZWF2ZVJlc3BvbnNlIlsKIVRlbmFudFNlcnZpY2VSZW1vdmVNZW1iZXJSZXNwb25zZRI2Cg10ZW5hbnRfbWVtYmVyGAEgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50TWVtYmVyIjIKIFRlbmFudFNlcnZpY2VJbnZpdGVBY2NlcHRSZXF1ZXN0Eg4KBnNlY3JldBgBIAEoCSJICiFUZW5hbnRTZXJ2aWNlSW52aXRlQWNjZXB0UmVzcG9uc2USDgoGdGVuYW50GAEgASgJEhMKC3RlbmFudF9uYW1lGAIgASgJIk4KIFRlbmFudFNlcnZpY2VJbnZpdGVEZWxldGVSZXF1ZXN0EhoKBWxvZ2luGAEgASgJQgu6SAhyBpC0rrECARIOCgZzZWNyZXQYAiABKAkiIwohVGVuYW50U2VydmljZUludml0ZURlbGV0ZVJlc3BvbnNlIo8BCh1UZW5hbnRTZXJ2aWNlQWRkTWVtYmVyUmVxdWVzdBIaCgVsb2dpbhgBIAEoCUILukgIcgaQtK6xAgESGwoGbWVtYmVyGAIgASgJQgu6SAhyBpC0rrECARI1CgRyb2xlGAMgASgOMh0ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50Um9sZUIIukgFggECEAEiWAoeVGVuYW50U2VydmljZUFkZE1lbWJlclJlc3BvbnNlEjYKDXRlbmFudF9tZW1iZXIYASABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRNZW1iZXIikgEKIFRlbmFudFNlcnZpY2VVcGRhdGVNZW1iZXJSZXF1ZXN0EhoKBWxvZ2luGAEgASgJQgu6SAhyBpC0rrECARIbCgZtZW1iZXIYAiABKAlCC7pICHIGkLSusQIBEjUKBHJvbGUYAyABKA4yHS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRSb2xlQgi6SAWCAQIQASJbCiFUZW5hbnRTZXJ2aWNlVXBkYXRlTWVtYmVyUmVzcG9uc2USNgoNdGVuYW50X21lbWJlchgBIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudE1lbWJlcjLFDQoNVGVuYW50U2VydmljZRJxCgZDcmVhdGUSLS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRTZXJ2aWNlQ3JlYXRlUmVxdWVzdBouLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFNlcnZpY2VDcmVhdGVSZXNwb25zZSII2PMYAuDzGAESawoETGlzdBIrLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFNlcnZpY2VMaXN0UmVxdWVzdBosLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFNlcnZpY2VMaXN0UmVzcG9uc2UiCNjzGALg8xgCEmwKA0dldBIqLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFNlcnZpY2VHZXRSZXF1ZXN0GisubWV0YWxzdGFjay5hcGkudjIuVGVuYW50U2VydmljZUdldFJlc3BvbnNlIgzC8xgEAQIDBODzGAIScwoGVXBkYXRlEi0ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50U2VydmljZVVwZGF0ZVJlcXVlc3QaLi5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRTZXJ2aWNlVXBkYXRlUmVzcG9uc2UiCsLzGAIBAuDzGAEScwoGRGVsZXRlEi0ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50U2VydmljZURlbGV0ZVJlcXVlc3QaLi5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRTZXJ2aWNlRGVsZXRlUmVzcG9uc2UiCsLzGAIBAuDzGAESbwoFTGVhdmUSLC5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRTZXJ2aWNlTGVhdmVSZXF1ZXN0Gi0ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50U2VydmljZUxlYXZlUmVzcG9uc2UiCcLzGAED4PMYARJ8CglBZGRNZW1iZXISMC5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRTZXJ2aWNlQWRkTWVtYmVyUmVxdWVzdBoxLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFNlcnZpY2VBZGRNZW1iZXJSZXNwb25zZSIKwvMYAgEC4PMYARKEAQoMUmVtb3ZlTWVtYmVyEjMubWV0YWxzdGFjay5hcGkudjIuVGVuYW50U2VydmljZVJlbW92ZU1lbWJlclJlcXVlc3QaNC5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRTZXJ2aWNlUmVtb3ZlTWVtYmVyUmVzcG9uc2UiCcLzGAEB4PMYARKEAQoMVXBkYXRlTWVtYmVyEjMubWV0YWxzdGFjay5hcGkudjIuVGVuYW50U2VydmljZVVwZGF0ZU1lbWJlclJlcXVlc3QaNC5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRTZXJ2aWNlVXBkYXRlTWVtYmVyUmVzcG9uc2UiCcLzGAEB4PMYARJyCgZJbnZpdGUSLS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRTZXJ2aWNlSW52aXRlUmVxdWVzdBouLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFNlcnZpY2VJbnZpdGVSZXNwb25zZSIJwvMYAQHg8xgBEoMBCgxJbnZpdGVBY2NlcHQSMy5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRTZXJ2aWNlSW52aXRlQWNjZXB0UmVxdWVzdBo0Lm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFNlcnZpY2VJbnZpdGVBY2NlcHRSZXNwb25zZSII2PMYAuDzGAEShAEKDEludml0ZURlbGV0ZRIzLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFNlcnZpY2VJbnZpdGVEZWxldGVSZXF1ZXN0GjQubWV0YWxzdGFjay5hcGkudjIuVGVuYW50U2VydmljZUludml0ZURlbGV0ZVJlc3BvbnNlIgnC8xgBAeDzGAESgQEKC0ludml0ZXNMaXN0EjIubWV0YWxzdGFjay5hcGkudjIuVGVuYW50U2VydmljZUludml0ZXNMaXN0UmVxdWVzdBozLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFNlcnZpY2VJbnZpdGVzTGlzdFJlc3BvbnNlIgnC8xgBAeDzGAISegoJSW52aXRlR2V0EjAubWV0YWxzdGFjay5hcGkudjIuVGVuYW50U2VydmljZUludml0ZUdldFJlcXVlc3QaMS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRTZXJ2aWNlSW52aXRlR2V0UmVzcG9uc2UiCNjzGALg8xgCQsEBChVjb20ubWV0YWxzdGFjay5hcGkudjJCC1RlbmFudFByb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules]);
+ fileDesc("Ch5tZXRhbHN0YWNrL2FwaS92Mi90ZW5hbnQucHJvdG8SEW1ldGFsc3RhY2suYXBpLnYyItUBCgZUZW5hbnQSGgoFbG9naW4YASABKAlCC7pICHIGkLSusQIBEiUKBG1ldGEYAiABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhEhkKBG5hbWUYAyABKAlCC7pICHIGwLOusQIBEhYKBWVtYWlsGAQgASgJQge6SARyAmABEiAKC2Rlc2NyaXB0aW9uGAUgASgJQgu6SAhyBsizrrECARIfCgphdmF0YXJfdXJsGAYgASgJQgu6SAhyBuCzrrECARISCgpjcmVhdGVkX2J5GAcgASgJIpwCCgxUZW5hbnRJbnZpdGUSDgoGc2VjcmV0GAEgASgJEhUKDXRhcmdldF90ZW5hbnQYAiABKAkSNQoEcm9sZRgDIAEoDjIdLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFJvbGVCCLpIBYIBAhABEg4KBmpvaW5lZBgEIAEoCBIaChJ0YXJnZXRfdGVuYW50X25hbWUYBSABKAkSDgoGdGVuYW50GAYgASgJEhMKC3RlbmFudF9uYW1lGAcgASgJEi4KCmV4cGlyZXNfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi0KCWpvaW5lZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiSQoYVGVuYW50U2VydmljZUxpc3RSZXF1ZXN0Ei0KBXF1ZXJ5GAEgASgLMh4ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50UXVlcnkixwEKC1RlbmFudFF1ZXJ5Eh8KBWxvZ2luGAEgASgJQgu6SAhyBpC0rrECAUgAiAEBEh4KBG5hbWUYAiABKAlCC7pICHIGwLOusQIBSAGIAQESLgoGbGFiZWxzGAMgASgLMhkubWV0YWxzdGFjay5hcGkudjIuTGFiZWxzSAKIAQESKQoGcGFnaW5nGAQgASgLMhkubWV0YWxzdGFjay5hcGkudjIuUGFnaW5nQggKBl9sb2dpbkIHCgVfbmFtZUIJCgdfbGFiZWxzIigKF1RlbmFudFNlcnZpY2VHZXRSZXF1ZXN0Eg0KBWxvZ2luGAEgASgJIvUBChpUZW5hbnRTZXJ2aWNlQ3JlYXRlUmVxdWVzdBIZCgRuYW1lGAEgASgJQgu6SAhyBsCzrrECARIlCgtkZXNjcmlwdGlvbhgCIAEoCUILukgIcgbIs66xAgFIAIgBARIbCgVlbWFpbBgDIAEoCUIHukgEcgJgAUgBiAEBEiQKCmF2YXRhcl91cmwYBCABKAlCC7pICHIG4LOusQIBSAKIAQESKQoGbGFiZWxzGAUgASgLMhkubWV0YWxzdGFjay5hcGkudjIuTGFiZWxzQg4KDF9kZXNjcmlwdGlvbkIICgZfZW1haWxCDQoLX2F2YXRhcl91cmwi8QIKGlRlbmFudFNlcnZpY2VVcGRhdGVSZXF1ZXN0EhoKBWxvZ2luGAEgASgJQgu6SAhyBpC0rrECARI6Cgt1cGRhdGVfbWV0YRgCIAEoCzIdLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZU1ldGFCBrpIA8gBARIeCgRuYW1lGAMgASgJQgu6SAhyBsCzrrECAUgAiAEBEhsKBWVtYWlsGAQgASgJQge6SARyAmABSAGIAQESJQoLZGVzY3JpcHRpb24YBSABKAlCC7pICHIGyLOusQIBSAKIAQESJAoKYXZhdGFyX3VybBgGIAEoCUILukgIcgbgs66xAgFIA4gBARI0CgZsYWJlbHMYByABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5VcGRhdGVMYWJlbHNIBIgBAUIHCgVfbmFtZUIICgZfZW1haWxCDgoMX2Rlc2NyaXB0aW9uQg0KC19hdmF0YXJfdXJsQgkKB19sYWJlbHMiOAoaVGVuYW50U2VydmljZURlbGV0ZVJlcXVlc3QSGgoFbG9naW4YASABKAlCC7pICHIGkLSusQIBIkUKGFRlbmFudFNlcnZpY2VHZXRSZXNwb25zZRIpCgZ0ZW5hbnQYASABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnQiRwoZVGVuYW50U2VydmljZUxpc3RSZXNwb25zZRIqCgd0ZW5hbnRzGAEgAygLMhkubWV0YWxzdGFjay5hcGkudjIuVGVuYW50IkgKG1RlbmFudFNlcnZpY2VDcmVhdGVSZXNwb25zZRIpCgZ0ZW5hbnQYASABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnQiSAobVGVuYW50U2VydmljZVVwZGF0ZVJlc3BvbnNlEikKBnRlbmFudBgBIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudCJIChtUZW5hbnRTZXJ2aWNlRGVsZXRlUmVzcG9uc2USKQoGdGVuYW50GAEgASgLMhkubWV0YWxzdGFjay5hcGkudjIuVGVuYW50Im8KGlRlbmFudFNlcnZpY2VJbnZpdGVSZXF1ZXN0EhoKBWxvZ2luGAEgASgJQgu6SAhyBpC0rrECARI1CgRyb2xlGAIgASgOMh0ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50Um9sZUIIukgFggECEAEiTgobVGVuYW50U2VydmljZUludml0ZVJlc3BvbnNlEi8KBmludml0ZRgBIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudEludml0ZSI9Ch9UZW5hbnRTZXJ2aWNlSW52aXRlc0xpc3RSZXF1ZXN0EhoKBWxvZ2luGAEgASgJQgu6SAhyBpC0rrECASJUCiBUZW5hbnRTZXJ2aWNlSW52aXRlc0xpc3RSZXNwb25zZRIwCgdpbnZpdGVzGAEgAygLMh8ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50SW52aXRlIi8KHVRlbmFudFNlcnZpY2VJbnZpdGVHZXRSZXF1ZXN0Eg4KBnNlY3JldBgBIAEoCSJRCh5UZW5hbnRTZXJ2aWNlSW52aXRlR2V0UmVzcG9uc2USLwoGaW52aXRlGAEgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50SW52aXRlIjIKIFRlbmFudFNlcnZpY2VJbnZpdGVBY2NlcHRSZXF1ZXN0Eg4KBnNlY3JldBgBIAEoCSJICiFUZW5hbnRTZXJ2aWNlSW52aXRlQWNjZXB0UmVzcG9uc2USDgoGdGVuYW50GAEgASgJEhMKC3RlbmFudF9uYW1lGAIgASgJIk4KIFRlbmFudFNlcnZpY2VJbnZpdGVEZWxldGVSZXF1ZXN0EhoKBWxvZ2luGAEgASgJQgu6SAhyBpC0rrECARIOCgZzZWNyZXQYAiABKAkiIwohVGVuYW50U2VydmljZUludml0ZURlbGV0ZVJlc3BvbnNlMsgJCg1UZW5hbnRTZXJ2aWNlEnEKBkNyZWF0ZRItLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFNlcnZpY2VDcmVhdGVSZXF1ZXN0Gi4ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50U2VydmljZUNyZWF0ZVJlc3BvbnNlIgjY8xgC4PMYARJrCgRMaXN0EisubWV0YWxzdGFjay5hcGkudjIuVGVuYW50U2VydmljZUxpc3RSZXF1ZXN0GiwubWV0YWxzdGFjay5hcGkudjIuVGVuYW50U2VydmljZUxpc3RSZXNwb25zZSII2PMYAuDzGAISbAoDR2V0EioubWV0YWxzdGFjay5hcGkudjIuVGVuYW50U2VydmljZUdldFJlcXVlc3QaKy5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRTZXJ2aWNlR2V0UmVzcG9uc2UiDMLzGAQBAgME4PMYAhJzCgZVcGRhdGUSLS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRTZXJ2aWNlVXBkYXRlUmVxdWVzdBouLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFNlcnZpY2VVcGRhdGVSZXNwb25zZSIKwvMYAgEC4PMYARJzCgZEZWxldGUSLS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRTZXJ2aWNlRGVsZXRlUmVxdWVzdBouLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFNlcnZpY2VEZWxldGVSZXNwb25zZSIKwvMYAgEC4PMYARJyCgZJbnZpdGUSLS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRTZXJ2aWNlSW52aXRlUmVxdWVzdBouLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFNlcnZpY2VJbnZpdGVSZXNwb25zZSIJwvMYAQHg8xgBEoMBCgxJbnZpdGVBY2NlcHQSMy5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRTZXJ2aWNlSW52aXRlQWNjZXB0UmVxdWVzdBo0Lm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFNlcnZpY2VJbnZpdGVBY2NlcHRSZXNwb25zZSII2PMYAuDzGAEShAEKDEludml0ZURlbGV0ZRIzLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFNlcnZpY2VJbnZpdGVEZWxldGVSZXF1ZXN0GjQubWV0YWxzdGFjay5hcGkudjIuVGVuYW50U2VydmljZUludml0ZURlbGV0ZVJlc3BvbnNlIgnC8xgBAeDzGAESgQEKC0ludml0ZXNMaXN0EjIubWV0YWxzdGFjay5hcGkudjIuVGVuYW50U2VydmljZUludml0ZXNMaXN0UmVxdWVzdBozLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFNlcnZpY2VJbnZpdGVzTGlzdFJlc3BvbnNlIgnC8xgBAeDzGAISegoJSW52aXRlR2V0EjAubWV0YWxzdGFjay5hcGkudjIuVGVuYW50U2VydmljZUludml0ZUdldFJlcXVlc3QaMS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRTZXJ2aWNlSW52aXRlR2V0UmVzcG9uc2UiCNjzGALg8xgCQsEBChVjb20ubWV0YWxzdGFjay5hcGkudjJCC1RlbmFudFByb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules]);
/**
* Tenant is a customer of the platform.
@@ -81,55 +81,6 @@ export type Tenant = Message<"metalstack.api.v2.Tenant"> & {
export const TenantSchema: GenMessage = /*@__PURE__*/
messageDesc(file_metalstack_api_v2_tenant, 0);
-/**
- * TenantMember defines a user that participates in a tenant.
- *
- * @generated from message metalstack.api.v2.TenantMember
- */
-export type TenantMember = Message<"metalstack.api.v2.TenantMember"> & {
- /**
- * Id is the user id of the member.
- *
- * @generated from field: string id = 1;
- */
- id: string;
-
- /**
- * Role is the role of the member.
- *
- * @generated from field: metalstack.api.v2.TenantRole role = 2;
- */
- role: TenantRole;
-
- /**
- * Projects in which a user is a direct member.
- *
- * @generated from field: repeated string projects = 3;
- */
- projects: string[];
-
- /**
- * CreatedAt the date when the member was added to the tenant.
- *
- * @generated from field: google.protobuf.Timestamp created_at = 4;
- */
- createdAt?: Timestamp | undefined;
-
- /**
- * Meta for this tenant member.
- *
- * @generated from field: metalstack.api.v2.Meta meta = 5;
- */
- meta?: Meta | undefined;
-};
-
-/**
- * Describes the message metalstack.api.v2.TenantMember.
- * Use `create(TenantMemberSchema)` to create a new message.
- */
-export const TenantMemberSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_tenant, 1);
-
/**
* TenantInvite defines invite to tenant.
*
@@ -205,7 +156,7 @@ export type TenantInvite = Message<"metalstack.api.v2.TenantInvite"> & {
* Use `create(TenantInviteSchema)` to create a new message.
*/
export const TenantInviteSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_tenant, 2);
+ messageDesc(file_metalstack_api_v2_tenant, 1);
/**
* TenantServiceListRequest is the request payload of the tenant list request.
@@ -226,7 +177,7 @@ export type TenantServiceListRequest = Message<"metalstack.api.v2.TenantServiceL
* Use `create(TenantServiceListRequestSchema)` to create a new message.
*/
export const TenantServiceListRequestSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_tenant, 3);
+ messageDesc(file_metalstack_api_v2_tenant, 2);
/**
* TenantQuery is used to search tenants.
@@ -268,7 +219,7 @@ export type TenantQuery = Message<"metalstack.api.v2.TenantQuery"> & {
* Use `create(TenantQuerySchema)` to create a new message.
*/
export const TenantQuerySchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_tenant, 4);
+ messageDesc(file_metalstack_api_v2_tenant, 3);
/**
* TenantServiceGetRequest is the request payload of the tenant get request.
@@ -289,7 +240,7 @@ export type TenantServiceGetRequest = Message<"metalstack.api.v2.TenantServiceGe
* Use `create(TenantServiceGetRequestSchema)` to create a new message.
*/
export const TenantServiceGetRequestSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_tenant, 5);
+ messageDesc(file_metalstack_api_v2_tenant, 4);
/**
* TenantServiceCreateRequest is the request payload of the tenant create request.
@@ -338,7 +289,7 @@ export type TenantServiceCreateRequest = Message<"metalstack.api.v2.TenantServic
* Use `create(TenantServiceCreateRequestSchema)` to create a new message.
*/
export const TenantServiceCreateRequestSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_tenant, 6);
+ messageDesc(file_metalstack_api_v2_tenant, 5);
/**
* TenantServiceUpdateRequest is the request payload of the tenant update request.
@@ -401,7 +352,7 @@ export type TenantServiceUpdateRequest = Message<"metalstack.api.v2.TenantServic
* Use `create(TenantServiceUpdateRequestSchema)` to create a new message.
*/
export const TenantServiceUpdateRequestSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_tenant, 7);
+ messageDesc(file_metalstack_api_v2_tenant, 6);
/**
* TenantServiceDeleteRequest is the request payload of the tenant delete request.
@@ -422,7 +373,7 @@ export type TenantServiceDeleteRequest = Message<"metalstack.api.v2.TenantServic
* Use `create(TenantServiceDeleteRequestSchema)` to create a new message.
*/
export const TenantServiceDeleteRequestSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_tenant, 8);
+ messageDesc(file_metalstack_api_v2_tenant, 7);
/**
* TenantServiceGetResponse is the response payload of the tenant get request.
@@ -436,13 +387,6 @@ export type TenantServiceGetResponse = Message<"metalstack.api.v2.TenantServiceG
* @generated from field: metalstack.api.v2.Tenant tenant = 1;
*/
tenant?: Tenant | undefined;
-
- /**
- * TenantMembers of this tenant.
- *
- * @generated from field: repeated metalstack.api.v2.TenantMember tenant_members = 2;
- */
- tenantMembers: TenantMember[];
};
/**
@@ -450,7 +394,7 @@ export type TenantServiceGetResponse = Message<"metalstack.api.v2.TenantServiceG
* Use `create(TenantServiceGetResponseSchema)` to create a new message.
*/
export const TenantServiceGetResponseSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_tenant, 9);
+ messageDesc(file_metalstack_api_v2_tenant, 8);
/**
* TenantServiceListResponse is the response payload of the tenant list request.
@@ -471,7 +415,7 @@ export type TenantServiceListResponse = Message<"metalstack.api.v2.TenantService
* Use `create(TenantServiceListResponseSchema)` to create a new message.
*/
export const TenantServiceListResponseSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_tenant, 10);
+ messageDesc(file_metalstack_api_v2_tenant, 9);
/**
* TenantServiceCreateResponse is the response payload of the tenant create request.
@@ -492,7 +436,7 @@ export type TenantServiceCreateResponse = Message<"metalstack.api.v2.TenantServi
* Use `create(TenantServiceCreateResponseSchema)` to create a new message.
*/
export const TenantServiceCreateResponseSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_tenant, 11);
+ messageDesc(file_metalstack_api_v2_tenant, 10);
/**
* TenantServiceUpdateResponse is the response payload of the tenant update request.
@@ -513,7 +457,7 @@ export type TenantServiceUpdateResponse = Message<"metalstack.api.v2.TenantServi
* Use `create(TenantServiceUpdateResponseSchema)` to create a new message.
*/
export const TenantServiceUpdateResponseSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_tenant, 12);
+ messageDesc(file_metalstack_api_v2_tenant, 11);
/**
* TenantServiceDeleteResponse is the response payload of the tenant delete request.
@@ -534,7 +478,7 @@ export type TenantServiceDeleteResponse = Message<"metalstack.api.v2.TenantServi
* Use `create(TenantServiceDeleteResponseSchema)` to create a new message.
*/
export const TenantServiceDeleteResponseSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_tenant, 13);
+ messageDesc(file_metalstack_api_v2_tenant, 12);
/**
* TenantServiceInviteRequest is used to invite a member to a tenant.
@@ -562,7 +506,7 @@ export type TenantServiceInviteRequest = Message<"metalstack.api.v2.TenantServic
* Use `create(TenantServiceInviteRequestSchema)` to create a new message.
*/
export const TenantServiceInviteRequestSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_tenant, 14);
+ messageDesc(file_metalstack_api_v2_tenant, 13);
/**
* TenantServiceInviteRequest is the response payload to a invite member request.
@@ -583,7 +527,7 @@ export type TenantServiceInviteResponse = Message<"metalstack.api.v2.TenantServi
* Use `create(TenantServiceInviteResponseSchema)` to create a new message.
*/
export const TenantServiceInviteResponseSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_tenant, 15);
+ messageDesc(file_metalstack_api_v2_tenant, 14);
/**
* TenantServiceInvitesListRequest is the request payload to a list invites request.
@@ -604,7 +548,7 @@ export type TenantServiceInvitesListRequest = Message<"metalstack.api.v2.TenantS
* Use `create(TenantServiceInvitesListRequestSchema)` to create a new message.
*/
export const TenantServiceInvitesListRequestSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_tenant, 16);
+ messageDesc(file_metalstack_api_v2_tenant, 15);
/**
* TenantServiceInvitesListResponse is the response payload to a list invites request.
@@ -625,7 +569,7 @@ export type TenantServiceInvitesListResponse = Message<"metalstack.api.v2.Tenant
* Use `create(TenantServiceInvitesListResponseSchema)` to create a new message.
*/
export const TenantServiceInvitesListResponseSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_tenant, 17);
+ messageDesc(file_metalstack_api_v2_tenant, 16);
/**
* TenantServiceInviteGetRequest is the request payload to get a invite.
@@ -646,7 +590,7 @@ export type TenantServiceInviteGetRequest = Message<"metalstack.api.v2.TenantSer
* Use `create(TenantServiceInviteGetRequestSchema)` to create a new message.
*/
export const TenantServiceInviteGetRequestSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_tenant, 18);
+ messageDesc(file_metalstack_api_v2_tenant, 17);
/**
* TenantServiceInviteGetResponse is the response payload to a get invite request.
@@ -667,92 +611,7 @@ export type TenantServiceInviteGetResponse = Message<"metalstack.api.v2.TenantSe
* Use `create(TenantServiceInviteGetResponseSchema)` to create a new message.
*/
export const TenantServiceInviteGetResponseSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_tenant, 19);
-
-/**
- * TenantServiceRemoveMemberRequest is used to remove a member from a tenant.
- *
- * @generated from message metalstack.api.v2.TenantServiceRemoveMemberRequest
- */
-export type TenantServiceRemoveMemberRequest = Message<"metalstack.api.v2.TenantServiceRemoveMemberRequest"> & {
- /**
- * Login of the tenant.
- *
- * @generated from field: string login = 1;
- */
- login: string;
-
- /**
- * Member is the id of the member to remove from this tenant.
- *
- * @generated from field: string member = 2;
- */
- member: string;
-};
-
-/**
- * Describes the message metalstack.api.v2.TenantServiceRemoveMemberRequest.
- * Use `create(TenantServiceRemoveMemberRequestSchema)` to create a new message.
- */
-export const TenantServiceRemoveMemberRequestSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_tenant, 20);
-
-/**
- * TenantServiceLeaveTenantRequest is used to leave a tenant.
- *
- * @generated from message metalstack.api.v2.TenantServiceLeaveRequest
- */
-export type TenantServiceLeaveRequest = Message<"metalstack.api.v2.TenantServiceLeaveRequest"> & {
- /**
- * Login of the tenant.
- *
- * @generated from field: string login = 1;
- */
- login: string;
-};
-
-/**
- * Describes the message metalstack.api.v2.TenantServiceLeaveRequest.
- * Use `create(TenantServiceLeaveRequestSchema)` to create a new message.
- */
-export const TenantServiceLeaveRequestSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_tenant, 21);
-
-/**
- * TenantServiceLeaveTenantResponse is the response payload to a leave tenant request.
- *
- * @generated from message metalstack.api.v2.TenantServiceLeaveResponse
- */
-export type TenantServiceLeaveResponse = Message<"metalstack.api.v2.TenantServiceLeaveResponse"> & {
-};
-
-/**
- * Describes the message metalstack.api.v2.TenantServiceLeaveResponse.
- * Use `create(TenantServiceLeaveResponseSchema)` to create a new message.
- */
-export const TenantServiceLeaveResponseSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_tenant, 22);
-
-/**
- * TenantServiceRemoveMemberResponse is the response payload to a remove member request.
- *
- * @generated from message metalstack.api.v2.TenantServiceRemoveMemberResponse
- */
-export type TenantServiceRemoveMemberResponse = Message<"metalstack.api.v2.TenantServiceRemoveMemberResponse"> & {
- /**
- * TenantMember is the removed tenant member.
- *
- * @generated from field: metalstack.api.v2.TenantMember tenant_member = 1;
- */
- tenantMember?: TenantMember | undefined;
-};
-
-/**
- * Describes the message metalstack.api.v2.TenantServiceRemoveMemberResponse.
- * Use `create(TenantServiceRemoveMemberResponseSchema)` to create a new message.
- */
-export const TenantServiceRemoveMemberResponseSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_tenant, 23);
+ messageDesc(file_metalstack_api_v2_tenant, 18);
/**
* TenantServiceInviteAcceptRequest is the request payload to a accept invite request.
@@ -773,7 +632,7 @@ export type TenantServiceInviteAcceptRequest = Message<"metalstack.api.v2.Tenant
* Use `create(TenantServiceInviteAcceptRequestSchema)` to create a new message.
*/
export const TenantServiceInviteAcceptRequestSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_tenant, 24);
+ messageDesc(file_metalstack_api_v2_tenant, 19);
/**
* TenantServiceInviteAcceptResponse is the response payload to a accept invite request.
@@ -801,7 +660,7 @@ export type TenantServiceInviteAcceptResponse = Message<"metalstack.api.v2.Tenan
* Use `create(TenantServiceInviteAcceptResponseSchema)` to create a new message.
*/
export const TenantServiceInviteAcceptResponseSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_tenant, 25);
+ messageDesc(file_metalstack_api_v2_tenant, 20);
/**
* TenantServiceInviteDeleteRequest is the request payload to a delete invite.
@@ -829,7 +688,7 @@ export type TenantServiceInviteDeleteRequest = Message<"metalstack.api.v2.Tenant
* Use `create(TenantServiceInviteDeleteRequestSchema)` to create a new message.
*/
export const TenantServiceInviteDeleteRequestSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_tenant, 26);
+ messageDesc(file_metalstack_api_v2_tenant, 21);
/**
* TenantServiceInviteDeleteResponse is the response payload of a delete invite request.
@@ -844,119 +703,7 @@ export type TenantServiceInviteDeleteResponse = Message<"metalstack.api.v2.Tenan
* Use `create(TenantServiceInviteDeleteResponseSchema)` to create a new message.
*/
export const TenantServiceInviteDeleteResponseSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_tenant, 27);
-
-/**
- * TenantServiceAddMemberRequest is the request payload for adding a member to a tenant.
- *
- * @generated from message metalstack.api.v2.TenantServiceAddMemberRequest
- */
-export type TenantServiceAddMemberRequest = Message<"metalstack.api.v2.TenantServiceAddMemberRequest"> & {
- /**
- * Login of the tenant to which the member will be added.
- *
- * @generated from field: string login = 1;
- */
- login: string;
-
- /**
- * Login of the member to add.
- *
- * @generated from field: string member = 2;
- */
- member: string;
-
- /**
- * Role to assign to the new member.
- *
- * @generated from field: metalstack.api.v2.TenantRole role = 3;
- */
- role: TenantRole;
-};
-
-/**
- * Describes the message metalstack.api.v2.TenantServiceAddMemberRequest.
- * Use `create(TenantServiceAddMemberRequestSchema)` to create a new message.
- */
-export const TenantServiceAddMemberRequestSchema: GenMessage = /*@__PURE__*/
- messageDesc(file_metalstack_api_v2_tenant, 28);
-
-/**
- * TenantServiceAddMemberResponse is the response payload for the add member request.
- *
- * @generated from message metalstack.api.v2.TenantServiceAddMemberResponse
- */
-export type TenantServiceAddMemberResponse = Message<"metalstack.api.v2.TenantServiceAddMemberResponse"> & {
- /**
- * TenantMember is the added tenant member.
- *
- * @generated from field: metalstack.api.v2.TenantMember tenant_member = 1;
- */
- tenantMember?: TenantMember | undefined;
-};
-
-/**
- * Describes the message metalstack.api.v2.TenantServiceAddMemberResponse.
- * Use `create(TenantServiceAddMemberResponseSchema)` to create a new message.
- */
-export const TenantServiceAddMemberResponseSchema: GenMessage