Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 10 additions & 4 deletions client/project_binding.go
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
package client

type MeshProjectBinding struct {
Metadata MeshProjectBindingMetadata `json:"metadata" tfsdk:"metadata"`
RoleRef MeshProjectRoleRef `json:"roleRef" tfsdk:"role_ref"`
TargetRef MeshProjectTargetRef `json:"targetRef" tfsdk:"target_ref"`
Subject MeshSubject `json:"subject" tfsdk:"subject"`
Metadata MeshProjectBindingMetadata `json:"metadata" tfsdk:"metadata"`
RoleRef MeshProjectRoleRef `json:"roleRef" tfsdk:"role_ref"`
TargetRef MeshProjectTargetRef `json:"targetRef" tfsdk:"target_ref"`
Subject MeshSubject `json:"subject" tfsdk:"subject"`
ExpiryDate *string `json:"expiryDate,omitzero" tfsdk:"expiry_date"`
}

type MeshProjectBindingMetadata struct {
Expand All @@ -27,3 +28,8 @@ type MeshProjectTargetRef struct {
type MeshSubject struct {
Name string `json:"name" tfsdk:"name"`
}

type MeshProjectBindingListFilter struct {
WorkspaceIdentifier *string `json:"workspaceIdentifier"`
ProjectIdentifier *string `json:"projectIdentifier"`
}
6 changes: 6 additions & 0 deletions client/project_group_binding.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"context"

"github.com/meshcloud/meshstack-cli/client/internal"
"github.com/meshcloud/meshstack-cli/internal/http"
)

type MeshProjectGroupBinding struct {
Expand All @@ -12,6 +13,7 @@ type MeshProjectGroupBinding struct {

type MeshProjectGroupBindingClient interface {
Read(ctx context.Context, name string) (*MeshProjectGroupBinding, error)
List(ctx context.Context, filter MeshProjectBindingListFilter) ([]MeshProjectGroupBinding, error)
Create(ctx context.Context, binding *MeshProjectGroupBinding) (*MeshProjectGroupBinding, error)
Delete(ctx context.Context, name string) error
}
Expand All @@ -28,6 +30,10 @@ func (c meshProjectGroupBindingClient) Read(ctx context.Context, name string) (*
return c.meshObject.Get(ctx, name)
}

func (c meshProjectGroupBindingClient) List(ctx context.Context, filter MeshProjectBindingListFilter) ([]MeshProjectGroupBinding, error) {
return c.meshObject.List(ctx, http.WithUrlQuery(filter))
}

func (c meshProjectGroupBindingClient) Create(ctx context.Context, binding *MeshProjectGroupBinding) (*MeshProjectGroupBinding, error) {
return c.meshObject.Post(ctx, binding)
}
Expand Down
6 changes: 6 additions & 0 deletions client/project_user_binding.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"context"

"github.com/meshcloud/meshstack-cli/client/internal"
"github.com/meshcloud/meshstack-cli/internal/http"
)

type MeshProjectUserBinding struct {
Expand All @@ -12,6 +13,7 @@ type MeshProjectUserBinding struct {

type MeshProjectUserBindingClient interface {
Read(ctx context.Context, name string) (*MeshProjectUserBinding, error)
List(ctx context.Context, filter MeshProjectBindingListFilter) ([]MeshProjectUserBinding, error)
Create(ctx context.Context, binding *MeshProjectUserBinding) (*MeshProjectUserBinding, error)
Delete(ctx context.Context, name string) error
}
Expand All @@ -28,6 +30,10 @@ func (c meshProjectUserBindingClient) Read(ctx context.Context, name string) (*M
return c.meshObject.Get(ctx, name)
}

func (c meshProjectUserBindingClient) List(ctx context.Context, filter MeshProjectBindingListFilter) ([]MeshProjectUserBinding, error) {
return c.meshObject.List(ctx, http.WithUrlQuery(filter))
}

func (c meshProjectUserBindingClient) Create(ctx context.Context, binding *MeshProjectUserBinding) (*MeshProjectUserBinding, error) {
return c.meshObject.Post(ctx, binding)
}
Expand Down
7 changes: 7 additions & 0 deletions client/workspace_binding.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,10 @@ type MeshWorkspaceTargetRef struct {
type MeshWorkspaceSubject struct {
Name string `json:"name" tfsdk:"name"`
}

type MeshWorkspaceBindingListFilter struct {
WorkspaceIdentifier *string `json:"workspaceIdentifier"`
WorkspaceRole *string `json:"workspaceRole"`
// Username matches a user binding of that user, or a group binding of a group the user is in.
Username *string `json:"username"`
}
6 changes: 6 additions & 0 deletions client/workspace_group_binding.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"context"

"github.com/meshcloud/meshstack-cli/client/internal"
"github.com/meshcloud/meshstack-cli/internal/http"
)

type MeshWorkspaceGroupBinding struct {
Expand All @@ -12,6 +13,7 @@ type MeshWorkspaceGroupBinding struct {

type MeshWorkspaceGroupBindingClient interface {
Read(ctx context.Context, name string) (*MeshWorkspaceGroupBinding, error)
List(ctx context.Context, filter MeshWorkspaceBindingListFilter) ([]MeshWorkspaceGroupBinding, error)
Create(ctx context.Context, binding *MeshWorkspaceGroupBinding) (*MeshWorkspaceGroupBinding, error)
Delete(ctx context.Context, name string) error
}
Expand All @@ -28,6 +30,10 @@ func (c meshWorkspaceGroupBindingClient) Read(ctx context.Context, name string)
return c.meshObject.Get(ctx, name)
}

func (c meshWorkspaceGroupBindingClient) List(ctx context.Context, filter MeshWorkspaceBindingListFilter) ([]MeshWorkspaceGroupBinding, error) {
return c.meshObject.List(ctx, http.WithUrlQuery(filter))
}

func (c meshWorkspaceGroupBindingClient) Create(ctx context.Context, binding *MeshWorkspaceGroupBinding) (*MeshWorkspaceGroupBinding, error) {
return c.meshObject.Post(ctx, binding)
}
Expand Down
6 changes: 6 additions & 0 deletions client/workspace_user_binding.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"context"

"github.com/meshcloud/meshstack-cli/client/internal"
"github.com/meshcloud/meshstack-cli/internal/http"
)

type MeshWorkspaceUserBinding struct {
Expand All @@ -12,6 +13,7 @@ type MeshWorkspaceUserBinding struct {

type MeshWorkspaceUserBindingClient interface {
Read(ctx context.Context, name string) (*MeshWorkspaceUserBinding, error)
List(ctx context.Context, filter MeshWorkspaceBindingListFilter) ([]MeshWorkspaceUserBinding, error)
Create(ctx context.Context, binding *MeshWorkspaceUserBinding) (*MeshWorkspaceUserBinding, error)
Delete(ctx context.Context, name string) error
}
Expand All @@ -28,6 +30,10 @@ func (c meshWorkspaceUserBindingClient) Read(ctx context.Context, name string) (
return c.meshObject.Get(ctx, name)
}

func (c meshWorkspaceUserBindingClient) List(ctx context.Context, filter MeshWorkspaceBindingListFilter) ([]MeshWorkspaceUserBinding, error) {
return c.meshObject.List(ctx, http.WithUrlQuery(filter))
}

func (c meshWorkspaceUserBindingClient) Create(ctx context.Context, binding *MeshWorkspaceUserBinding) (*MeshWorkspaceUserBinding, error) {
return c.meshObject.Post(ctx, binding)
}
Expand Down
Loading