geo

package
v2.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 6, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Package geo implements MCP tools for GitLab Geo site management.

The package wraps the GitLab Geo nodes API:

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ActionSpecs

func ActionSpecs(client *gitlabclient.Client) []toolutil.ActionSpec

ActionSpecs returns canonical specs for Geo site management actions.

func Delete

func Delete(ctx context.Context, client *gitlabclient.Client, in IDInput) error

Delete removes a Geo site by ID.

func FormatListMarkdown

func FormatListMarkdown(o ListOutput) string

FormatListMarkdown formats a list of Geo sites as a Markdown table.

func FormatListStatusMarkdown

func FormatListStatusMarkdown(o ListStatusOutput) string

FormatListStatusMarkdown formats a list of Geo site statuses as a Markdown table.

func FormatOutputMarkdown

func FormatOutputMarkdown(o Output) string

FormatOutputMarkdown formats a single Geo site as a Markdown table.

func FormatStatusMarkdown

func FormatStatusMarkdown(o StatusOutput) string

FormatStatusMarkdown formats a single Geo site status as a Markdown table.

Types

type CreateInput

type CreateInput struct {
	Primary                          *bool     `json:"primary,omitempty"                            jsonschema:"Whether this is a primary site"`
	Enabled                          *bool     `json:"enabled,omitempty"                            jsonschema:"Whether the site is enabled"`
	Name                             *string   `json:"name,omitempty"                               jsonschema:"Unique name of the Geo site"`
	URL                              *string   `json:"url,omitempty"                                jsonschema:"External URL of the Geo site"`
	InternalURL                      *string   `json:"internal_url,omitempty"                       jsonschema:"Internal URL of the Geo site"`
	FilesMaxCapacity                 *int64    `json:"files_max_capacity,omitempty"                 jsonschema:"Max number of LFS/attachment backfill downloads"`
	ReposMaxCapacity                 *int64    `json:"repos_max_capacity,omitempty"                 jsonschema:"Max number of concurrent repository backfill syncs"`
	VerificationMaxCapacity          *int64    `json:"verification_max_capacity,omitempty"          jsonschema:"Max number of concurrent verification jobs"`
	ContainerRepositoriesMaxCapacity *int64    `json:"container_repositories_max_capacity,omitempty" jsonschema:"Max number of concurrent container repository syncs"`
	SyncObjectStorage                *bool     `json:"sync_object_storage,omitempty"                jsonschema:"Whether to sync object-stored data"`
	SelectiveSyncType                *string   `json:"selective_sync_type,omitempty"                jsonschema:"Selective sync type: namespaces or shards"`
	SelectiveSyncShards              *[]string `json:"selective_sync_shards,omitempty"              jsonschema:"Storage shards to sync (when selective_sync_type=shards)"`
	SelectiveSyncNamespaceIDs        *[]int64  `json:"selective_sync_namespace_ids,omitempty"       jsonschema:"Namespace IDs to sync (when selective_sync_type=namespaces)"`
	MinimumReverificationInterval    *int64    `json:"minimum_reverification_interval,omitempty"    jsonschema:"Minimum interval (days) before re-verification"`
}

CreateInput holds parameters for creating a new Geo site.

type EditInput

type EditInput struct {
	ID                               int64     `json:"id"                                           jsonschema:"Numeric ID of the Geo site,required"`
	Enabled                          *bool     `json:"enabled,omitempty"                            jsonschema:"Whether the site is enabled"`
	Name                             *string   `json:"name,omitempty"                               jsonschema:"Unique name of the Geo site"`
	URL                              *string   `json:"url,omitempty"                                jsonschema:"External URL of the Geo site"`
	InternalURL                      *string   `json:"internal_url,omitempty"                       jsonschema:"Internal URL of the Geo site"`
	FilesMaxCapacity                 *int64    `json:"files_max_capacity,omitempty"                 jsonschema:"Max number of LFS/attachment backfill downloads"`
	ReposMaxCapacity                 *int64    `json:"repos_max_capacity,omitempty"                 jsonschema:"Max number of concurrent repository backfill syncs"`
	VerificationMaxCapacity          *int64    `json:"verification_max_capacity,omitempty"          jsonschema:"Max number of concurrent verification jobs"`
	ContainerRepositoriesMaxCapacity *int64    `json:"container_repositories_max_capacity,omitempty" jsonschema:"Max number of concurrent container repository syncs"`
	SelectiveSyncType                *string   `json:"selective_sync_type,omitempty"                jsonschema:"Selective sync type: namespaces or shards"`
	SelectiveSyncShards              *[]string `json:"selective_sync_shards,omitempty"              jsonschema:"Storage shards to sync"`
	SelectiveSyncNamespaceIDs        *[]int64  `json:"selective_sync_namespace_ids,omitempty"       jsonschema:"Namespace IDs to sync"`
	MinimumReverificationInterval    *int64    `json:"minimum_reverification_interval,omitempty"    jsonschema:"Minimum interval (days) before re-verification"`
}

EditInput holds parameters for editing an existing Geo site.

type IDInput

type IDInput struct {
	ID int64 `json:"id" jsonschema:"Numeric ID of the Geo site,required"`
}

IDInput holds a Geo site ID for get/delete/repair operations.

type Links struct {
	Self   string `json:"self,omitempty"`
	Status string `json:"status,omitempty"`
	Repair string `json:"repair,omitempty"`
}

Links mirrors gl.GeoSiteLinks: navigation links for a Geo site.

type ListInput

type ListInput struct {
	OrderBy string `json:"order_by,omitempty" jsonschema:"Column to order results by (keyset pagination)"`
	Sort    string `json:"sort,omitempty"     jsonschema:"Sort direction (asc, desc)"`
	toolutil.PaginationInput
	toolutil.KeysetPaginationInput
}

ListInput holds pagination and ordering parameters for listing Geo sites.

type ListOutput

type ListOutput struct {
	toolutil.HintableOutput
	Sites      []Output                  `json:"sites"`
	Pagination toolutil.PaginationOutput `json:"pagination"`
}

ListOutput represents a paginated list of Geo sites.

func List

func List(ctx context.Context, client *gitlabclient.Client, in ListInput) (ListOutput, error)

List retrieves all Geo sites.

type ListStatusInput

type ListStatusInput struct {
	OrderBy string `json:"order_by,omitempty" jsonschema:"Column to order results by (keyset pagination)"`
	Sort    string `json:"sort,omitempty"     jsonschema:"Sort direction (asc, desc)"`
	toolutil.PaginationInput
	toolutil.KeysetPaginationInput
}

ListStatusInput holds pagination and ordering parameters for listing all Geo site statuses.

type ListStatusOutput

type ListStatusOutput struct {
	toolutil.HintableOutput
	Statuses   []StatusOutput            `json:"statuses"`
	Pagination toolutil.PaginationOutput `json:"pagination"`
}

ListStatusOutput represents a paginated list of Geo site statuses.

func ListStatus

ListStatus retrieves the replication status of all Geo sites.

type Output

type Output struct {
	toolutil.HintableOutput
	ID                               int64    `json:"id"`
	Name                             string   `json:"name"`
	URL                              string   `json:"url"`
	InternalURL                      string   `json:"internal_url,omitempty"`
	Primary                          bool     `json:"primary"`
	Enabled                          bool     `json:"enabled"`
	Current                          bool     `json:"current"`
	FilesMaxCapacity                 int64    `json:"files_max_capacity"`
	ReposMaxCapacity                 int64    `json:"repos_max_capacity"`
	VerificationMaxCapacity          int64    `json:"verification_max_capacity"`
	ContainerRepositoriesMaxCapacity int64    `json:"container_repositories_max_capacity"`
	SelectiveSyncType                string   `json:"selective_sync_type,omitempty"`
	SelectiveSyncShards              []string `json:"selective_sync_shards,omitempty"`
	SelectiveSyncNamespaceIDs        []int64  `json:"selective_sync_namespace_ids,omitempty"`
	MinimumReverificationInterval    int64    `json:"minimum_reverification_interval"`
	SyncObjectStorage                bool     `json:"sync_object_storage"`
	WebEditURL                       string   `json:"web_edit_url,omitempty"`
	WebGeoReplicationDetailsURL      string   `json:"web_geo_replication_details_url,omitempty"`
	Links                            Links    `json:"_links"`
}

Output represents a single Geo site.

func Create

func Create(ctx context.Context, client *gitlabclient.Client, in CreateInput) (Output, error)

Create creates a new Geo site.

func Edit

func Edit(ctx context.Context, client *gitlabclient.Client, in EditInput) (Output, error)

Edit updates an existing Geo site.

func Get

func Get(ctx context.Context, client *gitlabclient.Client, in IDInput) (Output, error)

Get retrieves a specific Geo site by ID.

func Repair

func Repair(ctx context.Context, client *gitlabclient.Client, in IDInput) (Output, error)

Repair triggers OAuth repair for a Geo site.

type StatusLinks struct {
	Self string `json:"self,omitempty"`
	Site string `json:"site,omitempty"`
}

StatusLinks mirrors gl.GeoSiteStatusLink: navigation links for a Geo site status.

type StatusOutput

type StatusOutput struct {
	toolutil.HintableOutput
	GeoNodeID                                       int64       `json:"geo_node_id"`
	ProjectsCount                                   int64       `json:"projects_count"`
	ContainerRepositoriesReplicationEnabled         bool        `json:"container_repositories_replication_enabled"`
	LFSObjectsCount                                 int64       `json:"lfs_objects_count"`
	LFSObjectsChecksumTotalCount                    int64       `json:"lfs_objects_checksum_total_count"`
	LFSObjectsChecksummedCount                      int64       `json:"lfs_objects_checksummed_count"`
	LFSObjectsChecksumFailedCount                   int64       `json:"lfs_objects_checksum_failed_count"`
	LFSObjectsSyncedCount                           int64       `json:"lfs_objects_synced_count"`
	LFSObjectsFailedCount                           int64       `json:"lfs_objects_failed_count"`
	LFSObjectsRegistryCount                         int64       `json:"lfs_objects_registry_count"`
	LFSObjectsVerificationTotalCount                int64       `json:"lfs_objects_verification_total_count"`
	LFSObjectsVerifiedCount                         int64       `json:"lfs_objects_verified_count"`
	LFSObjectsVerificationFailedCount               int64       `json:"lfs_objects_verification_failed_count"`
	MergeRequestDiffsCount                          int64       `json:"merge_request_diffs_count"`
	MergeRequestDiffsChecksumTotalCount             int64       `json:"merge_request_diffs_checksum_total_count"`
	MergeRequestDiffsChecksummedCount               int64       `json:"merge_request_diffs_checksummed_count"`
	MergeRequestDiffsChecksumFailedCount            int64       `json:"merge_request_diffs_checksum_failed_count"`
	MergeRequestDiffsSyncedCount                    int64       `json:"merge_request_diffs_synced_count"`
	MergeRequestDiffsFailedCount                    int64       `json:"merge_request_diffs_failed_count"`
	MergeRequestDiffsRegistryCount                  int64       `json:"merge_request_diffs_registry_count"`
	MergeRequestDiffsVerificationTotalCount         int64       `json:"merge_request_diffs_verification_total_count"`
	MergeRequestDiffsVerifiedCount                  int64       `json:"merge_request_diffs_verified_count"`
	MergeRequestDiffsVerificationFailedCount        int64       `json:"merge_request_diffs_verification_failed_count"`
	PackageFilesCount                               int64       `json:"package_files_count"`
	PackageFilesChecksumTotalCount                  int64       `json:"package_files_checksum_total_count"`
	PackageFilesChecksummedCount                    int64       `json:"package_files_checksummed_count"`
	PackageFilesChecksumFailedCount                 int64       `json:"package_files_checksum_failed_count"`
	PackageFilesSyncedCount                         int64       `json:"package_files_synced_count"`
	PackageFilesFailedCount                         int64       `json:"package_files_failed_count"`
	PackageFilesRegistryCount                       int64       `json:"package_files_registry_count"`
	PackageFilesVerificationTotalCount              int64       `json:"package_files_verification_total_count"`
	PackageFilesVerifiedCount                       int64       `json:"package_files_verified_count"`
	PackageFilesVerificationFailedCount             int64       `json:"package_files_verification_failed_count"`
	TerraformStateVersionsCount                     int64       `json:"terraform_state_versions_count"`
	TerraformStateVersionsChecksumTotalCount        int64       `json:"terraform_state_versions_checksum_total_count"`
	TerraformStateVersionsChecksummedCount          int64       `json:"terraform_state_versions_checksummed_count"`
	TerraformStateVersionsChecksumFailedCount       int64       `json:"terraform_state_versions_checksum_failed_count"`
	TerraformStateVersionsSyncedCount               int64       `json:"terraform_state_versions_synced_count"`
	TerraformStateVersionsFailedCount               int64       `json:"terraform_state_versions_failed_count"`
	TerraformStateVersionsRegistryCount             int64       `json:"terraform_state_versions_registry_count"`
	TerraformStateVersionsVerificationTotalCount    int64       `json:"terraform_state_versions_verification_total_count"`
	TerraformStateVersionsVerifiedCount             int64       `json:"terraform_state_versions_verified_count"`
	TerraformStateVersionsVerificationFailedCount   int64       `json:"terraform_state_versions_verification_failed_count"`
	SnippetRepositoriesCount                        int64       `json:"snippet_repositories_count"`
	SnippetRepositoriesChecksumTotalCount           int64       `json:"snippet_repositories_checksum_total_count"`
	SnippetRepositoriesChecksummedCount             int64       `json:"snippet_repositories_checksummed_count"`
	SnippetRepositoriesChecksumFailedCount          int64       `json:"snippet_repositories_checksum_failed_count"`
	SnippetRepositoriesSyncedCount                  int64       `json:"snippet_repositories_synced_count"`
	SnippetRepositoriesFailedCount                  int64       `json:"snippet_repositories_failed_count"`
	SnippetRepositoriesRegistryCount                int64       `json:"snippet_repositories_registry_count"`
	SnippetRepositoriesVerificationTotalCount       int64       `json:"snippet_repositories_verification_total_count"`
	SnippetRepositoriesVerifiedCount                int64       `json:"snippet_repositories_verified_count"`
	SnippetRepositoriesVerificationFailedCount      int64       `json:"snippet_repositories_verification_failed_count"`
	GroupWikiRepositoriesCount                      int64       `json:"group_wiki_repositories_count"`
	GroupWikiRepositoriesChecksumTotalCount         int64       `json:"group_wiki_repositories_checksum_total_count"`
	GroupWikiRepositoriesChecksummedCount           int64       `json:"group_wiki_repositories_checksummed_count"`
	GroupWikiRepositoriesChecksumFailedCount        int64       `json:"group_wiki_repositories_checksum_failed_count"`
	GroupWikiRepositoriesSyncedCount                int64       `json:"group_wiki_repositories_synced_count"`
	GroupWikiRepositoriesFailedCount                int64       `json:"group_wiki_repositories_failed_count"`
	GroupWikiRepositoriesRegistryCount              int64       `json:"group_wiki_repositories_registry_count"`
	GroupWikiRepositoriesVerificationTotalCount     int64       `json:"group_wiki_repositories_verification_total_count"`
	GroupWikiRepositoriesVerifiedCount              int64       `json:"group_wiki_repositories_verified_count"`
	GroupWikiRepositoriesVerificationFailedCount    int64       `json:"group_wiki_repositories_verification_failed_count"`
	PipelineArtifactsCount                          int64       `json:"pipeline_artifacts_count"`
	PipelineArtifactsChecksumTotalCount             int64       `json:"pipeline_artifacts_checksum_total_count"`
	PipelineArtifactsChecksummedCount               int64       `json:"pipeline_artifacts_checksummed_count"`
	PipelineArtifactsChecksumFailedCount            int64       `json:"pipeline_artifacts_checksum_failed_count"`
	PipelineArtifactsSyncedCount                    int64       `json:"pipeline_artifacts_synced_count"`
	PipelineArtifactsFailedCount                    int64       `json:"pipeline_artifacts_failed_count"`
	PipelineArtifactsRegistryCount                  int64       `json:"pipeline_artifacts_registry_count"`
	PipelineArtifactsVerificationTotalCount         int64       `json:"pipeline_artifacts_verification_total_count"`
	PipelineArtifactsVerifiedCount                  int64       `json:"pipeline_artifacts_verified_count"`
	PipelineArtifactsVerificationFailedCount        int64       `json:"pipeline_artifacts_verification_failed_count"`
	PagesDeploymentsCount                           int64       `json:"pages_deployments_count"`
	PagesDeploymentsChecksumTotalCount              int64       `json:"pages_deployments_checksum_total_count"`
	PagesDeploymentsChecksummedCount                int64       `json:"pages_deployments_checksummed_count"`
	PagesDeploymentsChecksumFailedCount             int64       `json:"pages_deployments_checksum_failed_count"`
	PagesDeploymentsSyncedCount                     int64       `json:"pages_deployments_synced_count"`
	PagesDeploymentsFailedCount                     int64       `json:"pages_deployments_failed_count"`
	PagesDeploymentsRegistryCount                   int64       `json:"pages_deployments_registry_count"`
	PagesDeploymentsVerificationTotalCount          int64       `json:"pages_deployments_verification_total_count"`
	PagesDeploymentsVerifiedCount                   int64       `json:"pages_deployments_verified_count"`
	PagesDeploymentsVerificationFailedCount         int64       `json:"pages_deployments_verification_failed_count"`
	UploadsCount                                    int64       `json:"uploads_count"`
	UploadsChecksumTotalCount                       int64       `json:"uploads_checksum_total_count"`
	UploadsChecksummedCount                         int64       `json:"uploads_checksummed_count"`
	UploadsChecksumFailedCount                      int64       `json:"uploads_checksum_failed_count"`
	UploadsSyncedCount                              int64       `json:"uploads_synced_count"`
	UploadsFailedCount                              int64       `json:"uploads_failed_count"`
	UploadsRegistryCount                            int64       `json:"uploads_registry_count"`
	UploadsVerificationTotalCount                   int64       `json:"uploads_verification_total_count"`
	UploadsVerifiedCount                            int64       `json:"uploads_verified_count"`
	UploadsVerificationFailedCount                  int64       `json:"uploads_verification_failed_count"`
	JobArtifactsCount                               int64       `json:"job_artifacts_count"`
	JobArtifactsChecksumTotalCount                  int64       `json:"job_artifacts_checksum_total_count"`
	JobArtifactsChecksummedCount                    int64       `json:"job_artifacts_checksummed_count"`
	JobArtifactsChecksumFailedCount                 int64       `json:"job_artifacts_checksum_failed_count"`
	JobArtifactsSyncedCount                         int64       `json:"job_artifacts_synced_count"`
	JobArtifactsFailedCount                         int64       `json:"job_artifacts_failed_count"`
	JobArtifactsRegistryCount                       int64       `json:"job_artifacts_registry_count"`
	JobArtifactsVerificationTotalCount              int64       `json:"job_artifacts_verification_total_count"`
	JobArtifactsVerifiedCount                       int64       `json:"job_artifacts_verified_count"`
	JobArtifactsVerificationFailedCount             int64       `json:"job_artifacts_verification_failed_count"`
	CISecureFilesCount                              int64       `json:"ci_secure_files_count"`
	CISecureFilesChecksumTotalCount                 int64       `json:"ci_secure_files_checksum_total_count"`
	CISecureFilesChecksummedCount                   int64       `json:"ci_secure_files_checksummed_count"`
	CISecureFilesChecksumFailedCount                int64       `json:"ci_secure_files_checksum_failed_count"`
	CISecureFilesSyncedCount                        int64       `json:"ci_secure_files_synced_count"`
	CISecureFilesFailedCount                        int64       `json:"ci_secure_files_failed_count"`
	CISecureFilesRegistryCount                      int64       `json:"ci_secure_files_registry_count"`
	CISecureFilesVerificationTotalCount             int64       `json:"ci_secure_files_verification_total_count"`
	CISecureFilesVerifiedCount                      int64       `json:"ci_secure_files_verified_count"`
	CISecureFilesVerificationFailedCount            int64       `json:"ci_secure_files_verification_failed_count"`
	ContainerRepositoriesCount                      int64       `json:"container_repositories_count"`
	ContainerRepositoriesChecksumTotalCount         int64       `json:"container_repositories_checksum_total_count"`
	ContainerRepositoriesChecksummedCount           int64       `json:"container_repositories_checksummed_count"`
	ContainerRepositoriesChecksumFailedCount        int64       `json:"container_repositories_checksum_failed_count"`
	ContainerRepositoriesSyncedCount                int64       `json:"container_repositories_synced_count"`
	ContainerRepositoriesFailedCount                int64       `json:"container_repositories_failed_count"`
	ContainerRepositoriesRegistryCount              int64       `json:"container_repositories_registry_count"`
	ContainerRepositoriesVerificationTotalCount     int64       `json:"container_repositories_verification_total_count"`
	ContainerRepositoriesVerifiedCount              int64       `json:"container_repositories_verified_count"`
	ContainerRepositoriesVerificationFailedCount    int64       `json:"container_repositories_verification_failed_count"`
	DependencyProxyBlobsCount                       int64       `json:"dependency_proxy_blobs_count"`
	DependencyProxyBlobsChecksumTotalCount          int64       `json:"dependency_proxy_blobs_checksum_total_count"`
	DependencyProxyBlobsChecksummedCount            int64       `json:"dependency_proxy_blobs_checksummed_count"`
	DependencyProxyBlobsChecksumFailedCount         int64       `json:"dependency_proxy_blobs_checksum_failed_count"`
	DependencyProxyBlobsSyncedCount                 int64       `json:"dependency_proxy_blobs_synced_count"`
	DependencyProxyBlobsFailedCount                 int64       `json:"dependency_proxy_blobs_failed_count"`
	DependencyProxyBlobsRegistryCount               int64       `json:"dependency_proxy_blobs_registry_count"`
	DependencyProxyBlobsVerificationTotalCount      int64       `json:"dependency_proxy_blobs_verification_total_count"`
	DependencyProxyBlobsVerifiedCount               int64       `json:"dependency_proxy_blobs_verified_count"`
	DependencyProxyBlobsVerificationFailedCount     int64       `json:"dependency_proxy_blobs_verification_failed_count"`
	DependencyProxyManifestsCount                   int64       `json:"dependency_proxy_manifests_count"`
	DependencyProxyManifestsChecksumTotalCount      int64       `json:"dependency_proxy_manifests_checksum_total_count"`
	DependencyProxyManifestsChecksummedCount        int64       `json:"dependency_proxy_manifests_checksummed_count"`
	DependencyProxyManifestsChecksumFailedCount     int64       `json:"dependency_proxy_manifests_checksum_failed_count"`
	DependencyProxyManifestsSyncedCount             int64       `json:"dependency_proxy_manifests_synced_count"`
	DependencyProxyManifestsFailedCount             int64       `json:"dependency_proxy_manifests_failed_count"`
	DependencyProxyManifestsRegistryCount           int64       `json:"dependency_proxy_manifests_registry_count"`
	DependencyProxyManifestsVerificationTotalCount  int64       `json:"dependency_proxy_manifests_verification_total_count"`
	DependencyProxyManifestsVerifiedCount           int64       `json:"dependency_proxy_manifests_verified_count"`
	DependencyProxyManifestsVerificationFailedCount int64       `json:"dependency_proxy_manifests_verification_failed_count"`
	ProjectWikiRepositoriesCount                    int64       `json:"project_wiki_repositories_count"`
	ProjectWikiRepositoriesChecksumTotalCount       int64       `json:"project_wiki_repositories_checksum_total_count"`
	ProjectWikiRepositoriesChecksummedCount         int64       `json:"project_wiki_repositories_checksummed_count"`
	ProjectWikiRepositoriesChecksumFailedCount      int64       `json:"project_wiki_repositories_checksum_failed_count"`
	ProjectWikiRepositoriesSyncedCount              int64       `json:"project_wiki_repositories_synced_count"`
	ProjectWikiRepositoriesFailedCount              int64       `json:"project_wiki_repositories_failed_count"`
	ProjectWikiRepositoriesRegistryCount            int64       `json:"project_wiki_repositories_registry_count"`
	ProjectWikiRepositoriesVerificationTotalCount   int64       `json:"project_wiki_repositories_verification_total_count"`
	ProjectWikiRepositoriesVerifiedCount            int64       `json:"project_wiki_repositories_verified_count"`
	ProjectWikiRepositoriesVerificationFailedCount  int64       `json:"project_wiki_repositories_verification_failed_count"`
	GitFetchEventCountWeekly                        int64       `json:"git_fetch_event_count_weekly"`
	GitPushEventCountWeekly                         int64       `json:"git_push_event_count_weekly"`
	ProxyRemoteRequestsEventCountWeekly             int64       `json:"proxy_remote_requests_event_count_weekly"`
	ProxyLocalRequestsEventCountWeekly              int64       `json:"proxy_local_requests_event_count_weekly"`
	RepositoriesCheckedInPercentage                 string      `json:"repositories_checked_in_percentage"`
	ReplicationSlotsUsedInPercentage                string      `json:"replication_slots_used_in_percentage"`
	LFSObjectsSyncedInPercentage                    string      `json:"lfs_objects_synced_in_percentage"`
	LFSObjectsVerifiedInPercentage                  string      `json:"lfs_objects_verified_in_percentage"`
	MergeRequestDiffsSyncedInPercentage             string      `json:"merge_request_diffs_synced_in_percentage"`
	MergeRequestDiffsVerifiedInPercentage           string      `json:"merge_request_diffs_verified_in_percentage"`
	PackageFilesSyncedInPercentage                  string      `json:"package_files_synced_in_percentage"`
	PackageFilesVerifiedInPercentage                string      `json:"package_files_verified_in_percentage"`
	TerraformStateVersionsSyncedInPercentage        string      `json:"terraform_state_versions_synced_in_percentage"`
	TerraformStateVersionsVerifiedInPercentage      string      `json:"terraform_state_versions_verified_in_percentage"`
	SnippetRepositoriesSyncedInPercentage           string      `json:"snippet_repositories_synced_in_percentage"`
	SnippetRepositoriesVerifiedInPercentage         string      `json:"snippet_repositories_verified_in_percentage"`
	GroupWikiRepositoriesSyncedInPercentage         string      `json:"group_wiki_repositories_synced_in_percentage"`
	GroupWikiRepositoriesVerifiedInPercentage       string      `json:"group_wiki_repositories_verified_in_percentage"`
	PipelineArtifactsSyncedInPercentage             string      `json:"pipeline_artifacts_synced_in_percentage"`
	PipelineArtifactsVerifiedInPercentage           string      `json:"pipeline_artifacts_verified_in_percentage"`
	PagesDeploymentsSyncedInPercentage              string      `json:"pages_deployments_synced_in_percentage"`
	PagesDeploymentsVerifiedInPercentage            string      `json:"pages_deployments_verified_in_percentage"`
	UploadsSyncedInPercentage                       string      `json:"uploads_synced_in_percentage"`
	UploadsVerifiedInPercentage                     string      `json:"uploads_verified_in_percentage"`
	JobArtifactsSyncedInPercentage                  string      `json:"job_artifacts_synced_in_percentage"`
	JobArtifactsVerifiedInPercentage                string      `json:"job_artifacts_verified_in_percentage"`
	CISecureFilesSyncedInPercentage                 string      `json:"ci_secure_files_synced_in_percentage"`
	CISecureFilesVerifiedInPercentage               string      `json:"ci_secure_files_verified_in_percentage"`
	ContainerRepositoriesSyncedInPercentage         string      `json:"container_repositories_synced_in_percentage"`
	ContainerRepositoriesVerifiedInPercentage       string      `json:"container_repositories_verified_in_percentage"`
	DependencyProxyBlobsSyncedInPercentage          string      `json:"dependency_proxy_blobs_synced_in_percentage"`
	DependencyProxyBlobsVerifiedInPercentage        string      `json:"dependency_proxy_blobs_verified_in_percentage"`
	DependencyProxyManifestsSyncedInPercentage      string      `json:"dependency_proxy_manifests_synced_in_percentage"`
	DependencyProxyManifestsVerifiedInPercentage    string      `json:"dependency_proxy_manifests_verified_in_percentage"`
	ProjectWikiRepositoriesSyncedInPercentage       string      `json:"project_wiki_repositories_synced_in_percentage"`
	ProjectWikiRepositoriesVerifiedInPercentage     string      `json:"project_wiki_repositories_verified_in_percentage"`
	ReplicationSlotsCount                           int64       `json:"replication_slots_count"`
	ReplicationSlotsUsedCount                       int64       `json:"replication_slots_used_count"`
	Healthy                                         bool        `json:"healthy"`
	Health                                          string      `json:"health"`
	HealthStatus                                    string      `json:"health_status"`
	MissingOAuthApplication                         bool        `json:"missing_oauth_application"`
	DBReplicationLagSeconds                         int64       `json:"db_replication_lag_seconds"`
	ReplicationSlotsMaxRetainedWalBytes             int64       `json:"replication_slots_max_retained_wal_bytes"`
	RepositoriesCheckedCount                        int64       `json:"repositories_checked_count"`
	RepositoriesCheckedFailedCount                  int64       `json:"repositories_checked_failed_count"`
	LastEventID                                     int64       `json:"last_event_id"`
	LastEventTimestamp                              int64       `json:"last_event_timestamp"`
	CursorLastEventID                               int64       `json:"cursor_last_event_id"`
	CursorLastEventTimestamp                        int64       `json:"cursor_last_event_timestamp"`
	LastSuccessfulStatusCheckTimestamp              int64       `json:"last_successful_status_check_timestamp"`
	Version                                         string      `json:"version"`
	Revision                                        string      `json:"revision"`
	SelectiveSyncType                               string      `json:"selective_sync_type"`
	Namespaces                                      []string    `json:"namespaces,omitempty"`
	UpdatedAt                                       time.Time   `json:"updated_at"`
	StorageShardsMatch                              bool        `json:"storage_shards_match"`
	Links                                           StatusLinks `json:"_links"`
}

StatusOutput represents the full replication status of a Geo site, mirroring gl.GeoSiteStatus field-for-field.

func GetStatus

func GetStatus(ctx context.Context, client *gitlabclient.Client, in IDInput) (StatusOutput, error)

GetStatus retrieves the replication status of a specific Geo site.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL