рабочий вариант, но скороть 10 МБит
This commit is contained in:
@@ -53,10 +53,8 @@ const (
|
||||
FabricServiceClassRemoteWorkspace = "remote_workspace"
|
||||
FabricServiceClassFileTransfer = "file_transfer"
|
||||
FabricServiceClassVideo = "video"
|
||||
FabricServiceClassPlatformAdmin = "platform_admin"
|
||||
FabricServiceClassClusterAdmin = "cluster_admin"
|
||||
FabricServiceClassOrganization = "organization_portal"
|
||||
FabricServiceClassUserPortal = "user_portal"
|
||||
FabricServiceClassAdminIngress = "admin-ingress"
|
||||
FabricServiceClassPublicIngress = "public-ingress"
|
||||
|
||||
FabricChannelControl = "control"
|
||||
FabricChannelInteractive = "interactive"
|
||||
@@ -66,27 +64,21 @@ const (
|
||||
)
|
||||
|
||||
var allowedNodeRoles = map[string]struct{}{
|
||||
"public-ingress": {},
|
||||
"admin-ingress": {},
|
||||
"global-admin-runtime": {},
|
||||
"cluster-admin-runtime": {},
|
||||
"organization-portal-runtime": {},
|
||||
"user-portal-runtime": {},
|
||||
"identity-runtime": {},
|
||||
"policy-authority": {},
|
||||
"audit-sink": {},
|
||||
"entry-node": {},
|
||||
"relay-node": {},
|
||||
"core-mesh": {},
|
||||
"rdp-worker": {},
|
||||
"vnc-worker": {},
|
||||
"vpn-exit": {},
|
||||
"vpn-connector": {},
|
||||
"vpn-client": {},
|
||||
"ipv4-egress": {},
|
||||
"file-storage-cache": {},
|
||||
"update-cache": {},
|
||||
"video-relay": {},
|
||||
"public-ingress": {},
|
||||
"admin-ingress": {},
|
||||
"entry-node": {},
|
||||
"relay-node": {},
|
||||
"core-mesh": {},
|
||||
"rdp-worker": {},
|
||||
"vnc-worker": {},
|
||||
"vpn-exit": {},
|
||||
"vpn-connector": {},
|
||||
"vpn-client": {},
|
||||
"ipv4-ingress": {},
|
||||
"ipv4-egress": {},
|
||||
"file-storage-cache": {},
|
||||
"update-cache": {},
|
||||
"video-relay": {},
|
||||
}
|
||||
|
||||
type Cluster struct {
|
||||
@@ -163,8 +155,7 @@ type DockerInstallProfileRequest struct {
|
||||
type DockerInstallProfile struct {
|
||||
SchemaVersion string `json:"schema_version"`
|
||||
ClusterID string `json:"cluster_id"`
|
||||
BackendURL string `json:"backend_url"`
|
||||
ControlPlaneEndpoints []string `json:"control_plane_endpoints,omitempty"`
|
||||
ClusterAuthorityPublicKey string `json:"cluster_authority_public_key,omitempty"`
|
||||
ArtifactEndpoints []string `json:"artifact_endpoints,omitempty"`
|
||||
FabricRegistryRecords json.RawMessage `json:"fabric_registry_records,omitempty"`
|
||||
DockerImageArtifact *DockerArtifact `json:"docker_image_artifact,omitempty"`
|
||||
@@ -179,12 +170,12 @@ type DockerInstallProfile struct {
|
||||
Replace bool `json:"replace"`
|
||||
DockerVPNGatewayEnabled bool `json:"docker_vpn_gateway_enabled"`
|
||||
WorkloadSupervisionEnabled bool `json:"workload_supervision_enabled"`
|
||||
MeshSyntheticRuntimeEnabled bool `json:"mesh_synthetic_runtime_enabled"`
|
||||
FabricRuntimeEnabled bool `json:"fabric_runtime_enabled"`
|
||||
MeshProductionForwardingEnabled bool `json:"mesh_production_forwarding_enabled"`
|
||||
MeshListenAddr string `json:"mesh_listen_addr,omitempty"`
|
||||
MeshListenPortMode string `json:"mesh_listen_port_mode,omitempty"`
|
||||
MeshListenAutoPortStart int `json:"mesh_listen_auto_port_start,omitempty"`
|
||||
MeshListenAutoPortEnd int `json:"mesh_listen_auto_port_end,omitempty"`
|
||||
FabricListenAddr string `json:"fabric_listen_addr,omitempty"`
|
||||
FabricListenPortMode string `json:"fabric_listen_port_mode,omitempty"`
|
||||
FabricListenAutoPortStart int `json:"fabric_listen_auto_port_start,omitempty"`
|
||||
FabricListenAutoPortEnd int `json:"fabric_listen_auto_port_end,omitempty"`
|
||||
MeshAdvertiseEndpoint string `json:"mesh_advertise_endpoint,omitempty"`
|
||||
MeshAdvertiseEndpointsJSON json.RawMessage `json:"mesh_advertise_endpoints_json,omitempty"`
|
||||
MeshAdvertiseTransport string `json:"mesh_advertise_transport,omitempty"`
|
||||
@@ -201,8 +192,7 @@ type DockerInstallProfile struct {
|
||||
type WindowsInstallProfile struct {
|
||||
SchemaVersion string `json:"schema_version"`
|
||||
ClusterID string `json:"cluster_id"`
|
||||
BackendURL string `json:"backend_url"`
|
||||
ControlPlaneEndpoints []string `json:"control_plane_endpoints,omitempty"`
|
||||
ClusterAuthorityPublicKey string `json:"cluster_authority_public_key,omitempty"`
|
||||
ArtifactEndpoints []string `json:"artifact_endpoints,omitempty"`
|
||||
FabricRegistryRecords json.RawMessage `json:"fabric_registry_records,omitempty"`
|
||||
NodeAgentArtifact *DockerArtifact `json:"node_agent_artifact,omitempty"`
|
||||
@@ -212,12 +202,12 @@ type WindowsInstallProfile struct {
|
||||
InstallDir string `json:"install_dir"`
|
||||
StartupMode string `json:"startup_mode"`
|
||||
WorkloadSupervisionEnabled bool `json:"workload_supervision_enabled"`
|
||||
MeshSyntheticRuntimeEnabled bool `json:"mesh_synthetic_runtime_enabled"`
|
||||
FabricRuntimeEnabled bool `json:"fabric_runtime_enabled"`
|
||||
MeshProductionForwardingEnabled bool `json:"mesh_production_forwarding_enabled"`
|
||||
MeshListenAddr string `json:"mesh_listen_addr,omitempty"`
|
||||
MeshListenPortMode string `json:"mesh_listen_port_mode,omitempty"`
|
||||
MeshListenAutoPortStart int `json:"mesh_listen_auto_port_start,omitempty"`
|
||||
MeshListenAutoPortEnd int `json:"mesh_listen_auto_port_end,omitempty"`
|
||||
FabricListenAddr string `json:"fabric_listen_addr,omitempty"`
|
||||
FabricListenPortMode string `json:"fabric_listen_port_mode,omitempty"`
|
||||
FabricListenAutoPortStart int `json:"fabric_listen_auto_port_start,omitempty"`
|
||||
FabricListenAutoPortEnd int `json:"fabric_listen_auto_port_end,omitempty"`
|
||||
MeshAdvertiseEndpoint string `json:"mesh_advertise_endpoint,omitempty"`
|
||||
MeshAdvertiseEndpointsJSON json.RawMessage `json:"mesh_advertise_endpoints_json,omitempty"`
|
||||
MeshAdvertiseTransport string `json:"mesh_advertise_transport,omitempty"`
|
||||
@@ -234,8 +224,7 @@ type WindowsInstallProfile struct {
|
||||
type LinuxInstallProfile struct {
|
||||
SchemaVersion string `json:"schema_version"`
|
||||
ClusterID string `json:"cluster_id"`
|
||||
BackendURL string `json:"backend_url"`
|
||||
ControlPlaneEndpoints []string `json:"control_plane_endpoints,omitempty"`
|
||||
ClusterAuthorityPublicKey string `json:"cluster_authority_public_key,omitempty"`
|
||||
ArtifactEndpoints []string `json:"artifact_endpoints,omitempty"`
|
||||
FabricRegistryRecords json.RawMessage `json:"fabric_registry_records,omitempty"`
|
||||
NodeAgentArtifact *DockerArtifact `json:"node_agent_artifact,omitempty"`
|
||||
@@ -245,12 +234,12 @@ type LinuxInstallProfile struct {
|
||||
InstallDir string `json:"install_dir"`
|
||||
StartupMode string `json:"startup_mode"`
|
||||
WorkloadSupervisionEnabled bool `json:"workload_supervision_enabled"`
|
||||
MeshSyntheticRuntimeEnabled bool `json:"mesh_synthetic_runtime_enabled"`
|
||||
FabricRuntimeEnabled bool `json:"fabric_runtime_enabled"`
|
||||
MeshProductionForwardingEnabled bool `json:"mesh_production_forwarding_enabled"`
|
||||
MeshListenAddr string `json:"mesh_listen_addr,omitempty"`
|
||||
MeshListenPortMode string `json:"mesh_listen_port_mode,omitempty"`
|
||||
MeshListenAutoPortStart int `json:"mesh_listen_auto_port_start,omitempty"`
|
||||
MeshListenAutoPortEnd int `json:"mesh_listen_auto_port_end,omitempty"`
|
||||
FabricListenAddr string `json:"fabric_listen_addr,omitempty"`
|
||||
FabricListenPortMode string `json:"fabric_listen_port_mode,omitempty"`
|
||||
FabricListenAutoPortStart int `json:"fabric_listen_auto_port_start,omitempty"`
|
||||
FabricListenAutoPortEnd int `json:"fabric_listen_auto_port_end,omitempty"`
|
||||
MeshAdvertiseEndpoint string `json:"mesh_advertise_endpoint,omitempty"`
|
||||
MeshAdvertiseEndpointsJSON json.RawMessage `json:"mesh_advertise_endpoints_json,omitempty"`
|
||||
MeshAdvertiseTransport string `json:"mesh_advertise_transport,omitempty"`
|
||||
@@ -264,6 +253,19 @@ type LinuxInstallProfile struct {
|
||||
Roles []string `json:"roles,omitempty"`
|
||||
}
|
||||
|
||||
type InstallJoinBundle struct {
|
||||
SchemaVersion string `json:"schema_version"`
|
||||
BundleKind string `json:"bundle_kind"`
|
||||
ClusterID string `json:"cluster_id"`
|
||||
ClusterAuthority *ClusterAuthorityDescriptor `json:"cluster_authority,omitempty"`
|
||||
AuthorityPayload json.RawMessage `json:"authority_payload,omitempty"`
|
||||
AuthoritySignature *ClusterSignature `json:"authority_signature,omitempty"`
|
||||
IssuedAt time.Time `json:"issued_at"`
|
||||
DockerInstallProfile *DockerInstallProfile `json:"docker_install_profile,omitempty"`
|
||||
WindowsInstallProfile *WindowsInstallProfile `json:"windows_install_profile,omitempty"`
|
||||
LinuxInstallProfile *LinuxInstallProfile `json:"linux_install_profile,omitempty"`
|
||||
}
|
||||
|
||||
type DockerArtifact struct {
|
||||
Kind string `json:"kind"`
|
||||
Image string `json:"image,omitempty"`
|
||||
@@ -324,15 +326,19 @@ type NodeUpdatePolicy struct {
|
||||
}
|
||||
|
||||
type NodeUpdateHint struct {
|
||||
SchemaVersion string `json:"schema_version"`
|
||||
Generation string `json:"generation,omitempty"`
|
||||
CheckNow bool `json:"check_now"`
|
||||
Products []string `json:"products,omitempty"`
|
||||
Reason string `json:"reason,omitempty"`
|
||||
DeliveryMode string `json:"delivery_mode,omitempty"`
|
||||
SubscriptionStatus string `json:"subscription_status,omitempty"`
|
||||
UpdateService *NodeUpdateServiceAssignment `json:"update_service,omitempty"`
|
||||
FallbackPollSeconds int `json:"fallback_poll_seconds,omitempty"`
|
||||
SchemaVersion string `json:"schema_version"`
|
||||
Generation string `json:"generation,omitempty"`
|
||||
CheckNow bool `json:"check_now"`
|
||||
Products []string `json:"products,omitempty"`
|
||||
TargetVersions map[string]string `json:"target_versions,omitempty"`
|
||||
Reason string `json:"reason,omitempty"`
|
||||
DeliveryMode string `json:"delivery_mode,omitempty"`
|
||||
SubscriptionStatus string `json:"subscription_status,omitempty"`
|
||||
UpdateService *NodeUpdateServiceAssignment `json:"update_service,omitempty"`
|
||||
UpdateServiceCandidates []NodeUpdateServiceAssignment `json:"update_service_candidates,omitempty"`
|
||||
RescuePollSeconds int `json:"rescue_poll_seconds,omitempty"`
|
||||
AuthorityPayload json.RawMessage `json:"authority_payload,omitempty"`
|
||||
AuthoritySignature *ClusterSignature `json:"authority_signature,omitempty"`
|
||||
}
|
||||
|
||||
type NodeUpdateServiceAssignment struct {
|
||||
@@ -356,23 +362,75 @@ type NodeUpdateServiceCandidate struct {
|
||||
}
|
||||
|
||||
type NodeUpdatePlan struct {
|
||||
SchemaVersion string `json:"schema_version"`
|
||||
ClusterID string `json:"cluster_id"`
|
||||
NodeID string `json:"node_id"`
|
||||
Product string `json:"product"`
|
||||
CurrentVersion string `json:"current_version,omitempty"`
|
||||
Action string `json:"action"`
|
||||
Reason string `json:"reason"`
|
||||
TargetVersion string `json:"target_version,omitempty"`
|
||||
Channel string `json:"channel,omitempty"`
|
||||
Strategy string `json:"strategy,omitempty"`
|
||||
RollbackAllowed bool `json:"rollback_allowed"`
|
||||
HealthWindowSec int `json:"health_window_seconds,omitempty"`
|
||||
Artifact *ReleaseArtifact `json:"artifact,omitempty"`
|
||||
AuthorityPayload json.RawMessage `json:"authority_payload,omitempty"`
|
||||
AuthoritySignature *ClusterSignature `json:"authority_signature,omitempty"`
|
||||
AuthorityQuorum *QuorumEnvelope `json:"authority_quorum,omitempty"`
|
||||
ProductionForwarding bool `json:"production_forwarding"`
|
||||
SchemaVersion string `json:"schema_version"`
|
||||
ClusterID string `json:"cluster_id"`
|
||||
NodeID string `json:"node_id"`
|
||||
Product string `json:"product"`
|
||||
CurrentVersion string `json:"current_version,omitempty"`
|
||||
Action string `json:"action"`
|
||||
Reason string `json:"reason"`
|
||||
TargetVersion string `json:"target_version,omitempty"`
|
||||
Channel string `json:"channel,omitempty"`
|
||||
Strategy string `json:"strategy,omitempty"`
|
||||
RollbackAllowed bool `json:"rollback_allowed"`
|
||||
HealthWindowSec int `json:"health_window_seconds,omitempty"`
|
||||
FabricRegistryRecords json.RawMessage `json:"fabric_registry_records,omitempty"`
|
||||
UpdateIntent *NodeUpdateIntent `json:"update_intent,omitempty"`
|
||||
RolloutLease *NodeUpdateLease `json:"rollout_lease,omitempty"`
|
||||
Artifact *ReleaseArtifact `json:"artifact,omitempty"`
|
||||
AuthorityPayload json.RawMessage `json:"authority_payload,omitempty"`
|
||||
AuthoritySignature *ClusterSignature `json:"authority_signature,omitempty"`
|
||||
AuthorityQuorum *QuorumEnvelope `json:"authority_quorum,omitempty"`
|
||||
ProductionForwarding bool `json:"production_forwarding"`
|
||||
}
|
||||
|
||||
type NodeUpdateArtifactContent struct {
|
||||
SchemaVersion string `json:"schema_version"`
|
||||
ArtifactID string `json:"artifact_id"`
|
||||
Product string `json:"product"`
|
||||
Version string `json:"version"`
|
||||
DataBase64 string `json:"data_base64"`
|
||||
SHA256 string `json:"sha256,omitempty"`
|
||||
ChunkSHA256 string `json:"chunk_sha256,omitempty"`
|
||||
SizeBytes int64 `json:"size_bytes,omitempty"`
|
||||
Offset int64 `json:"offset,omitempty"`
|
||||
ChunkSize int64 `json:"chunk_size,omitempty"`
|
||||
Complete bool `json:"complete,omitempty"`
|
||||
DistributorID string `json:"distributor_id,omitempty"`
|
||||
}
|
||||
|
||||
type NodeUpdateIntent struct {
|
||||
SchemaVersion string `json:"schema_version"`
|
||||
IntentID string `json:"intent_id"`
|
||||
ClusterID string `json:"cluster_id"`
|
||||
NodeID string `json:"node_id,omitempty"`
|
||||
Product string `json:"product"`
|
||||
TargetVersion string `json:"target_version"`
|
||||
Strategy string `json:"strategy"`
|
||||
Generation string `json:"generation"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
ExpiresAt time.Time `json:"expires_at"`
|
||||
RollbackAllowed bool `json:"rollback_allowed"`
|
||||
HealthWindowSec int `json:"health_window_seconds,omitempty"`
|
||||
RequiredLease bool `json:"required_lease"`
|
||||
AllowedMirrors []string `json:"allowed_mirrors,omitempty"`
|
||||
}
|
||||
|
||||
type NodeUpdateLease struct {
|
||||
SchemaVersion string `json:"schema_version"`
|
||||
LeaseID string `json:"lease_id"`
|
||||
IntentID string `json:"intent_id"`
|
||||
ClusterID string `json:"cluster_id"`
|
||||
NodeID string `json:"node_id"`
|
||||
Product string `json:"product"`
|
||||
TargetVersion string `json:"target_version"`
|
||||
Strategy string `json:"strategy"`
|
||||
Status string `json:"status"`
|
||||
Reason string `json:"reason,omitempty"`
|
||||
MaxParallel int `json:"max_parallel"`
|
||||
ActiveUpdateCnt int `json:"active_update_count"`
|
||||
AcquiredAt time.Time `json:"acquired_at"`
|
||||
ExpiresAt time.Time `json:"expires_at"`
|
||||
}
|
||||
|
||||
type NodeBridgeReplayProductPlan struct {
|
||||
@@ -414,52 +472,87 @@ type NodeUpdateStatus struct {
|
||||
}
|
||||
|
||||
type StaleNodeRiskReport struct {
|
||||
ClusterID string `json:"cluster_id"`
|
||||
GeneratedAt time.Time `json:"generated_at"`
|
||||
HeartbeatStaleAfterSeconds int `json:"heartbeat_stale_after_seconds"`
|
||||
LegacyRemovalAllowed bool `json:"legacy_removal_allowed"`
|
||||
BridgeHoldRequired bool `json:"bridge_hold_required"`
|
||||
BridgeHoldNodeIDs []string `json:"bridge_hold_node_ids,omitempty"`
|
||||
BridgeHoldReasons []string `json:"bridge_hold_reasons,omitempty"`
|
||||
BlockedOperations []string `json:"blocked_operations,omitempty"`
|
||||
Nodes []StaleNodeRiskNode `json:"nodes"`
|
||||
Summary StaleNodeRiskSummary `json:"summary"`
|
||||
ClusterID string `json:"cluster_id"`
|
||||
GeneratedAt time.Time `json:"generated_at"`
|
||||
HeartbeatStaleAfterSeconds int `json:"heartbeat_stale_after_seconds"`
|
||||
FabricStandardCleanupAllowed bool `json:"fabric_standard_cleanup_allowed"`
|
||||
BridgeHoldRequired bool `json:"bridge_hold_required"`
|
||||
BridgeHoldNodeIDs []string `json:"bridge_hold_node_ids,omitempty"`
|
||||
BridgeHoldReasons []string `json:"bridge_hold_reasons,omitempty"`
|
||||
BlockedOperations []string `json:"blocked_operations,omitempty"`
|
||||
Nodes []StaleNodeRiskNode `json:"nodes"`
|
||||
Summary StaleNodeRiskSummary `json:"summary"`
|
||||
}
|
||||
|
||||
type StaleNodeRiskSummary struct {
|
||||
TotalNodes int `json:"total_nodes"`
|
||||
StaleNodes int `json:"stale_nodes"`
|
||||
BlockedNodes int `json:"blocked_nodes"`
|
||||
DirectPeerAlertNodes int `json:"direct_peer_alert_nodes"`
|
||||
ArtifactGapNodes int `json:"artifact_gap_nodes"`
|
||||
UnknownProfileNodes int `json:"unknown_profile_nodes"`
|
||||
WaitingUpdateStatusNodes int `json:"waiting_update_status_nodes"`
|
||||
UnknownVersionNodes int `json:"unknown_version_nodes"`
|
||||
LegacyRecoveryContractNodes int `json:"legacy_recovery_contract_nodes"`
|
||||
RecoveryBridgeRequiredNodes int `json:"recovery_bridge_required_nodes"`
|
||||
RecoveryBridgeReplayReadyNodes int `json:"recovery_bridge_replay_ready_nodes"`
|
||||
WaitingRecoveryHeartbeatNodes int `json:"waiting_recovery_heartbeat_nodes"`
|
||||
TotalNodes int `json:"total_nodes"`
|
||||
StaleNodes int `json:"stale_nodes"`
|
||||
BlockedNodes int `json:"blocked_nodes"`
|
||||
DirectPeerAlertNodes int `json:"direct_peer_alert_nodes"`
|
||||
AreaDiversityAlertNodes int `json:"area_diversity_alert_nodes"`
|
||||
IndependentIngressAlertNodes int `json:"independent_ingress_alert_nodes"`
|
||||
DirectoryDisseminationAlertNodes int `json:"directory_dissemination_alert_nodes"`
|
||||
UpdaterSubscriptionAlertNodes int `json:"updater_subscription_alert_nodes"`
|
||||
UpdaterWakeUnsupportedNodes int `json:"updater_wake_unsupported_nodes"`
|
||||
UpdaterRuntimeMissingNodes int `json:"updater_runtime_missing_nodes"`
|
||||
StandardUpdaterLineNodes int `json:"standard_updater_line_nodes"`
|
||||
StagedSelfUpdatePendingNodes int `json:"staged_self_update_pending_nodes"`
|
||||
PostUpdateHeartbeatGapNodes int `json:"post_update_heartbeat_gap_nodes"`
|
||||
ArtifactGapNodes int `json:"artifact_gap_nodes"`
|
||||
StandardControlDependencyNodes int `json:"standard_control_dependency_nodes"`
|
||||
RegistryCandidateOnlyNodes int `json:"registry_candidate_only_nodes"`
|
||||
RegistryJoinContractMissingNodes int `json:"registry_join_missing_nodes"`
|
||||
UnknownProfileNodes int `json:"unknown_profile_nodes"`
|
||||
WaitingUpdateStatusNodes int `json:"waiting_update_status_nodes"`
|
||||
UnknownVersionNodes int `json:"unknown_version_nodes"`
|
||||
StandardRecoveryContractNodes int `json:"standard_recovery_contract_nodes"`
|
||||
RecoveryBridgeRequiredNodes int `json:"recovery_bridge_required_nodes"`
|
||||
RecoveryBridgeReplayReadyNodes int `json:"recovery_bridge_replay_ready_nodes"`
|
||||
WaitingRecoveryHeartbeatNodes int `json:"waiting_recovery_heartbeat_nodes"`
|
||||
}
|
||||
|
||||
type StaleNodeRiskNode struct {
|
||||
NodeID string `json:"node_id"`
|
||||
Name string `json:"name"`
|
||||
RegistrationStatus string `json:"registration_status"`
|
||||
HealthStatus string `json:"health_status"`
|
||||
ReportedVersion *string `json:"reported_version,omitempty"`
|
||||
LastSeenAt *time.Time `json:"last_seen_at,omitempty"`
|
||||
HeartbeatStale bool `json:"heartbeat_stale"`
|
||||
Blocked bool `json:"blocked"`
|
||||
DirectPeerAlert bool `json:"direct_peer_alert"`
|
||||
DirectPeerReadyCount int `json:"direct_peer_ready_count,omitempty"`
|
||||
DirectPeerTargetCount int `json:"direct_peer_target_count,omitempty"`
|
||||
DirectPeerDeficit int `json:"direct_peer_deficit,omitempty"`
|
||||
Alerts []string `json:"alerts,omitempty"`
|
||||
RecoveryBridgeRequired bool `json:"recovery_bridge_required"`
|
||||
RecoveryBridgeReplayReady bool `json:"recovery_bridge_replay_ready"`
|
||||
RecoveryBridgeActions []string `json:"recovery_bridge_actions,omitempty"`
|
||||
Risks []string `json:"risks,omitempty"`
|
||||
Products []StaleNodeRiskProduct `json:"products,omitempty"`
|
||||
NodeID string `json:"node_id"`
|
||||
Name string `json:"name"`
|
||||
Area string `json:"area,omitempty"`
|
||||
RegistrationStatus string `json:"registration_status"`
|
||||
HealthStatus string `json:"health_status"`
|
||||
ReportedVersion *string `json:"reported_version,omitempty"`
|
||||
LastSeenAt *time.Time `json:"last_seen_at,omitempty"`
|
||||
HeartbeatStale bool `json:"heartbeat_stale"`
|
||||
Blocked bool `json:"blocked"`
|
||||
DirectPeerAlert bool `json:"direct_peer_alert"`
|
||||
DirectPeerReadyCount int `json:"direct_peer_ready_count,omitempty"`
|
||||
DirectPeerTargetCount int `json:"direct_peer_target_count,omitempty"`
|
||||
DirectPeerDeficit int `json:"direct_peer_deficit,omitempty"`
|
||||
DirectReadyAreas []string `json:"direct_ready_areas,omitempty"`
|
||||
ExternalAreaReadyCount int `json:"external_area_ready_count,omitempty"`
|
||||
RequiredExternalAreaCount int `json:"required_external_area_count,omitempty"`
|
||||
AreaDiversityAlert bool `json:"area_diversity_alert"`
|
||||
RequiredIndependentIngressCount int `json:"required_independent_ingress_count,omitempty"`
|
||||
IndependentIngressAlert bool `json:"independent_ingress_alert"`
|
||||
FullDirectoryExpected bool `json:"full_directory_expected"`
|
||||
KnownPeerDirectoryCount int `json:"known_peer_directory_count,omitempty"`
|
||||
ExpectedDirectoryCount int `json:"expected_directory_count,omitempty"`
|
||||
DirectoryDisseminationAlert bool `json:"directory_dissemination_alert"`
|
||||
UpdaterSubscriptionAlert bool `json:"updater_subscription_alert"`
|
||||
UpdaterWakeUnsupported bool `json:"updater_wake_unsupported"`
|
||||
UpdaterRuntimeMissing bool `json:"updater_runtime_missing"`
|
||||
StandardUpdaterLine bool `json:"standard_updater_line"`
|
||||
StagedSelfUpdatePending bool `json:"staged_self_update_pending"`
|
||||
PostUpdateHeartbeatGap bool `json:"post_update_heartbeat_gap"`
|
||||
StandardControlDependency bool `json:"standard_control_dependency"`
|
||||
StandardControlURL string `json:"standard_control_url,omitempty"`
|
||||
RegistryRuntimeStatus string `json:"registry_runtime_status,omitempty"`
|
||||
RegistryJoinContractMissing bool `json:"registry_join_missing"`
|
||||
ResolvedServiceCount int `json:"resolved_service_count,omitempty"`
|
||||
IndependentIngressCount int `json:"independent_ingress_count,omitempty"`
|
||||
Alerts []string `json:"alerts,omitempty"`
|
||||
RecoveryBridgeRequired bool `json:"recovery_bridge_required"`
|
||||
RecoveryBridgeReplayReady bool `json:"recovery_bridge_replay_ready"`
|
||||
RecoveryBridgeActions []string `json:"recovery_bridge_actions,omitempty"`
|
||||
Risks []string `json:"risks,omitempty"`
|
||||
Products []StaleNodeRiskProduct `json:"products,omitempty"`
|
||||
}
|
||||
|
||||
type StaleNodeRiskProduct struct {
|
||||
@@ -478,13 +571,15 @@ type StaleNodeRiskProduct struct {
|
||||
LastStatusPhase string `json:"last_status_phase,omitempty"`
|
||||
LastStatusValue string `json:"last_status_value,omitempty"`
|
||||
LastStatusReason string `json:"last_status_reason,omitempty"`
|
||||
StagedSelfUpdatePending bool `json:"staged_self_update_pending"`
|
||||
PostUpdateHeartbeatGap bool `json:"post_update_heartbeat_gap"`
|
||||
RecoveryBridgeRequired bool `json:"recovery_bridge_required"`
|
||||
RecoveryBridgeReplayReady bool `json:"recovery_bridge_replay_ready"`
|
||||
RecoveryBridgeMode string `json:"recovery_bridge_mode,omitempty"`
|
||||
Risks []string `json:"risks,omitempty"`
|
||||
}
|
||||
|
||||
type NodeBootstrap struct {
|
||||
type NodeJoinContract struct {
|
||||
NodeID string `json:"node_id"`
|
||||
ClusterID string `json:"cluster_id"`
|
||||
IdentityStatus string `json:"identity_status"`
|
||||
@@ -664,23 +759,23 @@ type FabricServiceChannelAdaptivePolicy struct {
|
||||
}
|
||||
|
||||
type FabricServiceChannelPoolPolicy struct {
|
||||
SchemaVersion string `json:"schema_version"`
|
||||
Fingerprint string `json:"fingerprint,omitempty"`
|
||||
EntryPoolNodeIDs []string `json:"entry_pool_node_ids,omitempty"`
|
||||
ExitPoolNodeIDs []string `json:"exit_pool_node_ids,omitempty"`
|
||||
PreferredEntryNodeID string `json:"preferred_entry_node_id,omitempty"`
|
||||
PreferredExitNodeID string `json:"preferred_exit_node_id,omitempty"`
|
||||
SelectionStrategy string `json:"selection_strategy"`
|
||||
RouteRebuild string `json:"route_rebuild"`
|
||||
EntryFailover string `json:"entry_failover"`
|
||||
ExitFailover string `json:"exit_failover"`
|
||||
BackendFallbackAllowed bool `json:"backend_fallback_allowed"`
|
||||
StickySession bool `json:"sticky_session"`
|
||||
Source string `json:"source"`
|
||||
UpdatedByUserID *string `json:"updated_by_user_id,omitempty"`
|
||||
UpdatedAt time.Time `json:"updated_at,omitempty"`
|
||||
ControlPlaneOnly bool `json:"control_plane_only"`
|
||||
ProductionForwarding bool `json:"production_forwarding"`
|
||||
SchemaVersion string `json:"schema_version"`
|
||||
Fingerprint string `json:"fingerprint,omitempty"`
|
||||
EntryPoolNodeIDs []string `json:"entry_pool_node_ids,omitempty"`
|
||||
ExitPoolNodeIDs []string `json:"exit_pool_node_ids,omitempty"`
|
||||
PreferredEntryNodeID string `json:"preferred_entry_node_id,omitempty"`
|
||||
PreferredExitNodeID string `json:"preferred_exit_node_id,omitempty"`
|
||||
SelectionStrategy string `json:"selection_strategy"`
|
||||
RouteRebuild string `json:"route_rebuild"`
|
||||
EntryFailover string `json:"entry_failover"`
|
||||
ExitFailover string `json:"exit_failover"`
|
||||
CompatFallbackAllowed bool `json:"degraded_route_allowed"`
|
||||
StickySession bool `json:"sticky_session"`
|
||||
Source string `json:"source"`
|
||||
UpdatedByUserID *string `json:"updated_by_user_id,omitempty"`
|
||||
UpdatedAt time.Time `json:"updated_at,omitempty"`
|
||||
ControlPlaneOnly bool `json:"control_plane_only"`
|
||||
ProductionForwarding bool `json:"production_forwarding"`
|
||||
}
|
||||
|
||||
type FabricServiceChannelBreadcrumbWindowPolicy struct {
|
||||
@@ -851,12 +946,12 @@ type NodeSyntheticMeshConfig struct {
|
||||
ServiceChannelFeedback *FabricServiceChannelRouteFeedbackReport `json:"service_channel_route_feedback,omitempty"`
|
||||
ServiceChannelAdaptivePolicy *FabricServiceChannelAdaptivePolicy `json:"service_channel_adaptive_policy,omitempty"`
|
||||
ServiceChannelRemediationCommands []FabricServiceChannelAccessRemediationCommand `json:"service_channel_remediation_commands,omitempty"`
|
||||
MeshListener *NodeMeshListenerConfig `json:"mesh_listener,omitempty"`
|
||||
FabricListener *NodeFabricListenerConfig `json:"fabric_listener,omitempty"`
|
||||
Routes []SyntheticMeshRouteConfig `json:"routes"`
|
||||
ProductionForwarding bool `json:"production_forwarding"`
|
||||
}
|
||||
|
||||
type NodeMeshListenerConfig struct {
|
||||
type NodeFabricListenerConfig struct {
|
||||
SchemaVersion string `json:"schema_version"`
|
||||
Source string `json:"source"`
|
||||
DesiredState string `json:"desired_state"`
|
||||
@@ -1094,23 +1189,23 @@ type FabricServiceChannelLeaseRecord struct {
|
||||
}
|
||||
|
||||
type FabricServiceChannelLeaseSummary struct {
|
||||
ClusterID string `json:"cluster_id"`
|
||||
ChannelID string `json:"channel_id"`
|
||||
ResourceID string `json:"resource_id,omitempty"`
|
||||
ServiceClass string `json:"service_class"`
|
||||
Status string `json:"status"`
|
||||
SelectedEntryNodeID string `json:"selected_entry_node_id,omitempty"`
|
||||
SelectedExitNodeID string `json:"selected_exit_node_id,omitempty"`
|
||||
AllowedChannels []string `json:"allowed_channels,omitempty"`
|
||||
PrimaryRouteID string `json:"primary_route_id,omitempty"`
|
||||
PrimaryRouteStatus string `json:"primary_route_status,omitempty"`
|
||||
DataPlane FabricServiceChannelDataPlaneContract `json:"data_plane,omitempty"`
|
||||
ForceBackendFallback bool `json:"force_backend_fallback"`
|
||||
Expired bool `json:"expired"`
|
||||
IssuedAt time.Time `json:"issued_at"`
|
||||
ExpiresAt time.Time `json:"expires_at"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
ClusterID string `json:"cluster_id"`
|
||||
ChannelID string `json:"channel_id"`
|
||||
ResourceID string `json:"resource_id,omitempty"`
|
||||
ServiceClass string `json:"service_class"`
|
||||
Status string `json:"status"`
|
||||
SelectedEntryNodeID string `json:"selected_entry_node_id,omitempty"`
|
||||
SelectedExitNodeID string `json:"selected_exit_node_id,omitempty"`
|
||||
AllowedChannels []string `json:"allowed_channels,omitempty"`
|
||||
PrimaryRouteID string `json:"primary_route_id,omitempty"`
|
||||
PrimaryRouteStatus string `json:"primary_route_status,omitempty"`
|
||||
DataPlane FabricServiceChannelDataPlaneContract `json:"data_plane,omitempty"`
|
||||
ForceCompatFallback bool `json:"force_degraded_route"`
|
||||
Expired bool `json:"expired"`
|
||||
IssuedAt time.Time `json:"issued_at"`
|
||||
ExpiresAt time.Time `json:"expires_at"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
}
|
||||
|
||||
type FabricServiceChannelLeaseMaintenance struct {
|
||||
@@ -1139,15 +1234,15 @@ type FabricServiceChannelAccessTelemetry struct {
|
||||
TotalAccepted int `json:"total_accepted"`
|
||||
SignedAccepted int `json:"signed_accepted"`
|
||||
IntrospectionAccepted int `json:"introspection_accepted"`
|
||||
LegacyUnsignedAccepted int `json:"legacy_unsigned_accepted"`
|
||||
BackendFallbackCount int `json:"backend_fallback_count"`
|
||||
BackendFallbackBlockedCount int `json:"backend_fallback_blocked_count,omitempty"`
|
||||
CompatUnsignedAccepted int `json:"unsigned_accepted"`
|
||||
CompatFallbackCount int `json:"degraded_route_use_count"`
|
||||
CompatFallbackBlockedCount int `json:"degraded_route_blocked_count,omitempty"`
|
||||
FabricRouteSendFailureCount int `json:"fabric_route_send_failure_count,omitempty"`
|
||||
DataPlaneContractCount int `json:"data_plane_contract_count,omitempty"`
|
||||
LastDataPlaneMode string `json:"last_data_plane_mode,omitempty"`
|
||||
LastWorkingDataTransport string `json:"last_working_data_transport,omitempty"`
|
||||
LastSteadyStateTransport string `json:"last_steady_state_transport,omitempty"`
|
||||
LastBackendRelayPolicy string `json:"last_backend_relay_policy,omitempty"`
|
||||
LastCompatRelayPolicy string `json:"last_degraded_route_policy,omitempty"`
|
||||
LastLogicalFlowMode string `json:"last_logical_flow_mode,omitempty"`
|
||||
LastDataPlaneViolationStatus string `json:"last_data_plane_violation_status,omitempty"`
|
||||
LastDataPlaneViolationReason string `json:"last_data_plane_violation_reason,omitempty"`
|
||||
@@ -1184,15 +1279,15 @@ type FabricServiceChannelAccessTelemetryNode struct {
|
||||
TotalAccepted int `json:"total_accepted"`
|
||||
SignedAccepted int `json:"signed_accepted"`
|
||||
IntrospectionAccepted int `json:"introspection_accepted"`
|
||||
LegacyUnsignedAccepted int `json:"legacy_unsigned_accepted"`
|
||||
BackendFallbackCount int `json:"backend_fallback_count"`
|
||||
BackendFallbackBlockedCount int `json:"backend_fallback_blocked_count,omitempty"`
|
||||
CompatUnsignedAccepted int `json:"unsigned_accepted"`
|
||||
CompatFallbackCount int `json:"degraded_route_use_count"`
|
||||
CompatFallbackBlockedCount int `json:"degraded_route_blocked_count,omitempty"`
|
||||
FabricRouteSendFailureCount int `json:"fabric_route_send_failure_count,omitempty"`
|
||||
DataPlaneContractCount int `json:"data_plane_contract_count,omitempty"`
|
||||
LastDataPlaneMode string `json:"last_data_plane_mode,omitempty"`
|
||||
LastWorkingDataTransport string `json:"last_working_data_transport,omitempty"`
|
||||
LastSteadyStateTransport string `json:"last_steady_state_transport,omitempty"`
|
||||
LastBackendRelayPolicy string `json:"last_backend_relay_policy,omitempty"`
|
||||
LastCompatRelayPolicy string `json:"last_degraded_route_policy,omitempty"`
|
||||
LastLogicalFlowMode string `json:"last_logical_flow_mode,omitempty"`
|
||||
LastDataPlaneViolationStatus string `json:"last_data_plane_violation_status,omitempty"`
|
||||
LastDataPlaneViolationReason string `json:"last_data_plane_violation_reason,omitempty"`
|
||||
@@ -1219,17 +1314,17 @@ type FabricServiceChannelAccessTelemetryChannel struct {
|
||||
SelectedExitNodeID string `json:"selected_exit_node_id,omitempty"`
|
||||
PrimaryRouteID string `json:"primary_route_id,omitempty"`
|
||||
PrimaryRouteStatus string `json:"primary_route_status,omitempty"`
|
||||
ForceBackendFallback bool `json:"force_backend_fallback"`
|
||||
ForceCompatFallback bool `json:"force_degraded_route"`
|
||||
EntryNodeTotalAccepted int `json:"entry_node_total_accepted"`
|
||||
EntryNodeIntrospectionAccepted int `json:"entry_node_introspection_accepted"`
|
||||
EntryNodeBackendFallbackCount int `json:"entry_node_backend_fallback_count"`
|
||||
EntryNodeBackendFallbackBlockedCount int `json:"entry_node_backend_fallback_blocked_count,omitempty"`
|
||||
EntryNodeCompatFallbackCount int `json:"entry_node_degraded_route_count"`
|
||||
EntryNodeCompatFallbackBlockedCount int `json:"entry_node_degraded_route_blocked_count,omitempty"`
|
||||
EntryNodeFabricRouteSendFailureCount int `json:"entry_node_fabric_route_send_failure_count,omitempty"`
|
||||
EntryNodeDataPlaneContractCount int `json:"entry_node_data_plane_contract_count,omitempty"`
|
||||
EntryNodeLastDataPlaneMode string `json:"entry_node_last_data_plane_mode,omitempty"`
|
||||
EntryNodeLastWorkingDataTransport string `json:"entry_node_last_working_data_transport,omitempty"`
|
||||
EntryNodeLastSteadyStateTransport string `json:"entry_node_last_steady_state_transport,omitempty"`
|
||||
EntryNodeLastBackendRelayPolicy string `json:"entry_node_last_backend_relay_policy,omitempty"`
|
||||
EntryNodeLastCompatRelayPolicy string `json:"entry_node_last_degraded_route_policy,omitempty"`
|
||||
EntryNodeLastLogicalFlowMode string `json:"entry_node_last_logical_flow_mode,omitempty"`
|
||||
EntryNodeLastDataPlaneViolationStatus string `json:"entry_node_last_data_plane_violation_status,omitempty"`
|
||||
EntryNodeLastDataPlaneViolationReason string `json:"entry_node_last_data_plane_violation_reason,omitempty"`
|
||||
@@ -1305,26 +1400,26 @@ type FabricServiceChannelAccessRemediationCommand struct {
|
||||
}
|
||||
|
||||
type FabricServiceChannelLeaseIntrospection struct {
|
||||
SchemaVersion string `json:"schema_version"`
|
||||
ClusterID string `json:"cluster_id"`
|
||||
ChannelID string `json:"channel_id"`
|
||||
ResourceID string `json:"resource_id,omitempty"`
|
||||
ServiceClass string `json:"service_class"`
|
||||
Allowed bool `json:"allowed"`
|
||||
Status string `json:"status"`
|
||||
Reason string `json:"reason,omitempty"`
|
||||
AcceptedBy string `json:"accepted_by"`
|
||||
SelectedEntryNodeID string `json:"selected_entry_node_id,omitempty"`
|
||||
SelectedExitNodeID string `json:"selected_exit_node_id,omitempty"`
|
||||
AllowedChannels []string `json:"allowed_channels,omitempty"`
|
||||
PreferredRouteID string `json:"preferred_route_id,omitempty"`
|
||||
ForceBackendFallback bool `json:"force_backend_fallback"`
|
||||
LeaseStatus string `json:"lease_status,omitempty"`
|
||||
PrimaryRoute FabricServiceChannelRoute `json:"primary_route,omitempty"`
|
||||
DataPlane FabricServiceChannelDataPlaneContract `json:"data_plane,omitempty"`
|
||||
RouteGeneration string `json:"route_generation,omitempty"`
|
||||
FencingEpoch int64 `json:"fencing_epoch,omitempty"`
|
||||
ExpiresAt time.Time `json:"expires_at,omitempty"`
|
||||
SchemaVersion string `json:"schema_version"`
|
||||
ClusterID string `json:"cluster_id"`
|
||||
ChannelID string `json:"channel_id"`
|
||||
ResourceID string `json:"resource_id,omitempty"`
|
||||
ServiceClass string `json:"service_class"`
|
||||
Allowed bool `json:"allowed"`
|
||||
Status string `json:"status"`
|
||||
Reason string `json:"reason,omitempty"`
|
||||
AcceptedBy string `json:"accepted_by"`
|
||||
SelectedEntryNodeID string `json:"selected_entry_node_id,omitempty"`
|
||||
SelectedExitNodeID string `json:"selected_exit_node_id,omitempty"`
|
||||
AllowedChannels []string `json:"allowed_channels,omitempty"`
|
||||
PreferredRouteID string `json:"preferred_route_id,omitempty"`
|
||||
ForceCompatFallback bool `json:"force_degraded_route"`
|
||||
LeaseStatus string `json:"lease_status,omitempty"`
|
||||
PrimaryRoute FabricServiceChannelRoute `json:"primary_route,omitempty"`
|
||||
DataPlane FabricServiceChannelDataPlaneContract `json:"data_plane,omitempty"`
|
||||
RouteGeneration string `json:"route_generation,omitempty"`
|
||||
FencingEpoch int64 `json:"fencing_epoch,omitempty"`
|
||||
ExpiresAt time.Time `json:"expires_at,omitempty"`
|
||||
}
|
||||
|
||||
type FabricServiceChannelRouteFeedbackObservation struct {
|
||||
@@ -1970,7 +2065,17 @@ type CreateJoinRequestInput struct {
|
||||
RequestedRoles json.RawMessage
|
||||
}
|
||||
|
||||
type GetJoinRequestBootstrapInput struct {
|
||||
type RegisterFabricNodeInput struct {
|
||||
ClusterID string
|
||||
NodeKey string
|
||||
Name string
|
||||
OwnershipType string
|
||||
OwnerOrganizationID *string
|
||||
ReportedVersion *string
|
||||
Metadata json.RawMessage
|
||||
}
|
||||
|
||||
type GetJoinRequestJoinInput struct {
|
||||
ClusterID string
|
||||
JoinRequestID string
|
||||
NodeFingerprint string
|
||||
@@ -1988,14 +2093,14 @@ type ApproveJoinRequestInput struct {
|
||||
}
|
||||
|
||||
type ApprovedJoinRequest struct {
|
||||
JoinRequest NodeJoinRequest `json:"join_request"`
|
||||
Bootstrap NodeBootstrap `json:"node_bootstrap"`
|
||||
JoinRequest NodeJoinRequest `json:"join_request"`
|
||||
JoinContract NodeJoinContract `json:"node_join"`
|
||||
}
|
||||
|
||||
type JoinRequestBootstrapResult struct {
|
||||
Status string `json:"status"`
|
||||
JoinRequest NodeJoinRequest `json:"join_request"`
|
||||
Bootstrap *NodeBootstrap `json:"node_bootstrap,omitempty"`
|
||||
type JoinRequestJoinResult struct {
|
||||
Status string `json:"status"`
|
||||
JoinRequest NodeJoinRequest `json:"join_request"`
|
||||
JoinContract *NodeJoinContract `json:"node_join,omitempty"`
|
||||
}
|
||||
|
||||
type RejectJoinRequestInput struct {
|
||||
@@ -2114,15 +2219,24 @@ type UpsertNodeUpdatePolicyInput struct {
|
||||
}
|
||||
|
||||
type GetNodeUpdatePlanInput struct {
|
||||
ClusterID string
|
||||
NodeID string
|
||||
Product string
|
||||
CurrentVersion string
|
||||
OS string
|
||||
Arch string
|
||||
InstallType string
|
||||
Channel string
|
||||
ArtifactOrigin string
|
||||
ClusterID string
|
||||
NodeID string
|
||||
Product string
|
||||
CurrentVersion string
|
||||
OS string
|
||||
Arch string
|
||||
InstallType string
|
||||
Channel string
|
||||
ArtifactOrigin string
|
||||
ExecutorCapabilities []string
|
||||
}
|
||||
|
||||
type GetNodeUpdateArtifactContentInput struct {
|
||||
ClusterID string
|
||||
NodeID string
|
||||
ArtifactID string
|
||||
Offset int64
|
||||
Length int64
|
||||
}
|
||||
|
||||
type GetStaleNodeRiskReportInput struct {
|
||||
@@ -2276,38 +2390,38 @@ type SetFabricEgressPoolNodeInput struct {
|
||||
}
|
||||
|
||||
type IssueFabricServiceChannelLeaseInput struct {
|
||||
ActorUserID string
|
||||
ClusterID string
|
||||
OrganizationID string
|
||||
UserID string
|
||||
ResourceID string
|
||||
ServiceClass string
|
||||
EntryNodeIDs []string
|
||||
ExitNodeIDs []string
|
||||
PreferredEntryNodeID string
|
||||
PreferredExitNodeID string
|
||||
RequiredRoles []string
|
||||
AllowedChannels []string
|
||||
QoS json.RawMessage
|
||||
Failover json.RawMessage
|
||||
Metadata json.RawMessage
|
||||
TTL time.Duration
|
||||
BackendFallbackAllowed *bool
|
||||
ActorUserID string
|
||||
ClusterID string
|
||||
OrganizationID string
|
||||
UserID string
|
||||
ResourceID string
|
||||
ServiceClass string
|
||||
EntryNodeIDs []string
|
||||
ExitNodeIDs []string
|
||||
PreferredEntryNodeID string
|
||||
PreferredExitNodeID string
|
||||
RequiredRoles []string
|
||||
AllowedChannels []string
|
||||
QoS json.RawMessage
|
||||
Failover json.RawMessage
|
||||
Metadata json.RawMessage
|
||||
TTL time.Duration
|
||||
CompatFallbackAllowed *bool
|
||||
}
|
||||
|
||||
type UpdateFabricServiceChannelPoolPolicyInput struct {
|
||||
ActorUserID string
|
||||
ClusterID string
|
||||
EntryPoolNodeIDs []string
|
||||
ExitPoolNodeIDs []string
|
||||
PreferredEntryNodeID string
|
||||
PreferredExitNodeID string
|
||||
SelectionStrategy string
|
||||
RouteRebuild string
|
||||
EntryFailover string
|
||||
ExitFailover string
|
||||
BackendFallbackAllowed *bool
|
||||
StickySession *bool
|
||||
ActorUserID string
|
||||
ClusterID string
|
||||
EntryPoolNodeIDs []string
|
||||
ExitPoolNodeIDs []string
|
||||
PreferredEntryNodeID string
|
||||
PreferredExitNodeID string
|
||||
SelectionStrategy string
|
||||
RouteRebuild string
|
||||
EntryFailover string
|
||||
ExitFailover string
|
||||
CompatFallbackAllowed *bool
|
||||
StickySession *bool
|
||||
}
|
||||
|
||||
type UpdateFabricServiceChannelBreadcrumbWindowPolicyInput struct {
|
||||
|
||||
Reference in New Issue
Block a user