mirror of
https://github.com/gravitational/teleport.git
synced 2026-11-02 14:59:53 +08:00
* git_server resource and role.allow.github_permissions * implicit RO on KindGitServer * review comments * fix ut * make -C integrations/operator crd * fix ut again * make crds-up-to-date and make -C integrations/terraform docs
60 lines
2.3 KiB
Go
60 lines
2.3 KiB
Go
/*
|
|
* Teleport
|
|
* Copyright (C) 2024 Gravitational, Inc.
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Affero General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Affero General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Affero General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
package services
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/gravitational/teleport/api/types"
|
|
)
|
|
|
|
// GitServerGetter defines interface for fetching git servers.
|
|
type GitServerGetter interface {
|
|
// GetGitServer returns Git servers by name.
|
|
GetGitServer(ctx context.Context, name string) (types.Server, error)
|
|
// ListGitServers returns all Git servers matching filter.
|
|
ListGitServers(ctx context.Context, pageSize int, pageToken string) ([]types.Server, string, error)
|
|
}
|
|
|
|
// GitServers defines an interface for managing git servers.
|
|
type GitServers interface {
|
|
GitServerGetter
|
|
|
|
// CreateGitServer creates a Git server resource.
|
|
CreateGitServer(ctx context.Context, item types.Server) (types.Server, error)
|
|
// UpdateGitServer updates a Git server resource.
|
|
UpdateGitServer(ctx context.Context, item types.Server) (types.Server, error)
|
|
// UpsertGitServer updates a Git server resource, creating it if it doesn't exist.
|
|
UpsertGitServer(ctx context.Context, item types.Server) (types.Server, error)
|
|
// DeleteGitServer removes the specified Git server resource.
|
|
DeleteGitServer(ctx context.Context, name string) error
|
|
// DeleteAllGitServers removes all Git server resources.
|
|
DeleteAllGitServers(ctx context.Context) error
|
|
}
|
|
|
|
// MarshalGitServer marshals the Git Server resource to JSON.
|
|
func MarshalGitServer(server types.Server, opts ...MarshalOption) ([]byte, error) {
|
|
return MarshalServer(server, opts...)
|
|
}
|
|
|
|
// UnmarshalGitServer unmarshals the Git Server resource from JSON.
|
|
func UnmarshalGitServer(bytes []byte, opts ...MarshalOption) (types.Server, error) {
|
|
return UnmarshalServer(bytes, types.KindGitServer, opts...)
|
|
}
|