// SPDX-License-Identifier: Apache-2.0
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
import { Exclude, Expose, Type } from 'class-transformer';
import { RemoteConfigMetadataSchema } from './remote-config-metadata-schema.js';
import { ApplicationVersionsSchema } from '../common/application-versions-schema.js';
import { ClusterSchema } from '../common/cluster-schema.js';
import { DeploymentStateSchema } from './deployment-state-schema.js';
import { DeploymentHistorySchema } from './deployment-history-schema.js';
import { Version } from '../../../../business/utils/version.js';
let RemoteConfigSchema = class RemoteConfigSchema {
    static SCHEMA_VERSION = new Version(1);
    schemaVersion;
    metadata;
    versions;
    clusters;
    state;
    history;
    constructor(schemaVersion, metadata, versions, clusters, state, history) {
        this.schemaVersion = schemaVersion || 0;
        this.metadata = metadata || new RemoteConfigMetadataSchema();
        this.versions = versions || new ApplicationVersionsSchema();
        this.clusters = clusters || [];
        this.state = state || new DeploymentStateSchema();
        this.history = history || new DeploymentHistorySchema();
    }
};
__decorate([
    Expose(),
    __metadata("design:type", Number)
], RemoteConfigSchema.prototype, "schemaVersion", void 0);
__decorate([
    Expose(),
    Type(() => RemoteConfigMetadataSchema),
    __metadata("design:type", RemoteConfigMetadataSchema)
], RemoteConfigSchema.prototype, "metadata", void 0);
__decorate([
    Expose(),
    Type(() => ApplicationVersionsSchema),
    __metadata("design:type", ApplicationVersionsSchema)
], RemoteConfigSchema.prototype, "versions", void 0);
__decorate([
    Expose(),
    Type(() => ClusterSchema),
    __metadata("design:type", Array)
], RemoteConfigSchema.prototype, "clusters", void 0);
__decorate([
    Expose(),
    Type(() => DeploymentStateSchema),
    __metadata("design:type", DeploymentStateSchema)
], RemoteConfigSchema.prototype, "state", void 0);
__decorate([
    Expose(),
    Type(() => DeploymentHistorySchema),
    __metadata("design:type", DeploymentHistorySchema)
], RemoteConfigSchema.prototype, "history", void 0);
RemoteConfigSchema = __decorate([
    Exclude(),
    __metadata("design:paramtypes", [Number, RemoteConfigMetadataSchema,
        ApplicationVersionsSchema, Array, DeploymentStateSchema,
        DeploymentHistorySchema])
], RemoteConfigSchema);
export { RemoteConfigSchema };
//# sourceMappingURL=remote-config-schema.js.map