@hashgraph/solo
Version:
An opinionated CLI tool to deploy and manage private Hedera Networks.
75 lines (62 loc) • 2.68 kB
text/typescript
// SPDX-License-Identifier: Apache-2.0
import {
type ClusterReferenceName,
type ClusterReferences,
type Context,
type DeploymentName,
type Optional,
} from '../../../types/index.js';
import {type NamespaceName} from '../../../types/namespace/namespace-name.js';
import {type ConfigMap} from '../../../integration/kube/resources/config-map/config-map.js';
import {type AnyObject, type ArgvStruct, type NodeAlias, type NodeAliases} from '../../../types/aliases.js';
import {type LedgerPhase} from '../../../data/schema/model/remote/ledger-phase.js';
import {type ConsensusNode} from '../../../core/model/consensus-node.js';
import {type ComponentFactoryApi} from '../../../core/config/remote/api/component-factory-api.js';
import {type RemoteConfig} from '../config/remote/remote-config.js';
import {type ComponentTypes} from '../../../core/config/remote/enumerations/component-types.js';
import {type SemanticVersion} from '../../utils/semantic-version.js';
export interface RemoteConfigRuntimeStateApi {
configuration?: RemoteConfig;
getClusterRefs(): ClusterReferences;
getContexts(): Context[];
getConsensusNodes(): ConsensusNode[];
deleteComponents(): Promise<void>;
getNamespace(): NamespaceName;
isLoaded(): boolean;
load(namespace?: NamespaceName, context?: Context): Promise<void>;
persist(): Promise<void>;
create(
argv: ArgvStruct,
ledgerPhase: LedgerPhase,
nodeAliases: NodeAliases,
namespace: NamespaceName,
deployment: DeploymentName,
clusterReference: ClusterReferenceName,
context: Context,
dnsBaseDomain: string,
dnsConsensusNodePattern: string,
): Promise<void>;
createFromExisting(
namespace: NamespaceName,
clusterReference: ClusterReferenceName,
deployment: DeploymentName,
componentFactory: ComponentFactoryApi,
dnsBaseDomain: string,
dnsConsensusNodePattern: string,
existingClusterContext: Context,
argv: ArgvStruct,
nodeAliases: NodeAliases,
): Promise<void>;
addCommandToHistory(command: string): void;
createConfigMap(namespace: NamespaceName, context: Context): Promise<ConfigMap>;
remoteConfigExists(namespace: NamespaceName, context: Context): Promise<boolean>;
populateFromExisting(namespace: NamespaceName, context: Context): Promise<void>;
loadAndValidate(
argv: {_: string[]} & AnyObject,
validate?: boolean,
skipConsensusNodesValidation?: boolean,
): Promise<void>;
extractContextFromConsensusNodes(nodeAlias: NodeAlias): Optional<string>;
updateComponentVersion(type: ComponentTypes, version: SemanticVersion<string>): void;
getComponentVersion(type: ComponentTypes): SemanticVersion<string>;
}