@soft-stech/flagger
Version:
114 lines (113 loc) • 3.15 kB
JavaScript
import { addSchema } from "@soft-stech/apimachinery/_schemas/IoK8sApimachineryPkgApisMetaV1ObjectMeta";
import { Model, setSchema, createTypeMetaGuard } from "@soft-stech/base";
import { register } from "@soft-stech/validate";
const schemaId = "flagger.app.v1beta1.AlertProvider";
const schema = {
"type": "object",
"properties": {
"apiVersion": {
"type": "string",
"enum": [
"flagger.app/v1beta1"
]
},
"kind": {
"type": "string",
"enum": [
"AlertProvider"
]
},
"metadata": {
"oneOf": [
{
"$ref": "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta#"
},
{
"type": "null"
}
]
},
"spec": {
"type": "object",
"oneOf": [
{
"required": [
"type",
"address"
]
},
{
"required": [
"type",
"secretRef"
]
}
],
"properties": {
"type": {
"type": "string",
"enum": [
"slack",
"msteams",
"discord",
"rocket",
"gchat"
],
"nullable": true
},
"channel": {
"type": "string",
"nullable": true
},
"username": {
"type": "string",
"nullable": true
},
"address": {
"type": "string",
"nullable": true
},
"proxy": {
"type": "string",
"nullable": true
},
"secretRef": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
}
},
"nullable": true
}
},
"nullable": true
}
},
"required": [
"apiVersion",
"kind"
]
};
/**
* AlertProvider is the Schema for the AlertProvider API.
*/
export class AlertProvider extends Model {
constructor(data) {
super({
apiVersion: AlertProvider.apiVersion,
kind: AlertProvider.kind,
...data
});
}
}
AlertProvider.apiVersion = "flagger.app/v1beta1";
AlertProvider.kind = "AlertProvider";
AlertProvider.is = createTypeMetaGuard(AlertProvider);
setSchema(AlertProvider, schemaId, () => {
addSchema();
register(schemaId, schema);
});