Skip to content

Instantly share code, notes, and snippets.

@aloknnikhil
Last active September 17, 2024 16:00
Show Gist options
  • Save aloknnikhil/153e282bc513398eafc34b50aba2d3e7 to your computer and use it in GitHub Desktop.
Save aloknnikhil/153e282bc513398eafc34b50aba2d3e7 to your computer and use it in GitHub Desktop.
{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/omnistrate/ows-orchestration/v1/pkg/registration/service/servicebuild/serviceplan/custom-service-plan-spec","$ref":"#/$defs/CustomServicePlanSpec","$defs":{"APIParameterConfiguration":{"properties":{"Key":{"type":"string"},"Description":{"type":"string"},"Name":{"type":"string"},"Type":{"type":"string"},"Modifiable":{"type":"boolean"},"Required":{"type":"boolean"},"Export":{"type":"boolean"},"DefaultValue":{"type":"string"},"Options":{"items":{"type":"string"},"type":"array"},"LabeledOptions":{"additionalProperties":{"type":"string"},"type":"object"},"Limits":{"$ref":"#/$defs/Limits"},"DependentResourceKey":{"type":"string"},"ParameterDependencyMap":{"additionalProperties":{"type":"string"},"type":"object"}},"additionalProperties":false,"type":"object","required":["Key","Description","Name","Type","Modifiable","Required","Export","DefaultValue","Options","LabeledOptions","Limits","DependentResourceKey","ParameterDependencyMap"]},"ActionHook":{"properties":{"Type":{"type":"string"},"Scope":{"type":"string"},"CommandTemplate":{"type":"string"}},"additionalProperties":false,"type":"object"},"AutoscalingConfiguration":{"properties":{"MinReplicas":{"$ref":"#/$defs/IntOrString"},"MaxReplicas":{"$ref":"#/$defs/IntOrString"},"IdleMinutesBeforeScalingDown":{"type":"integer"},"IdleThreshold":{"type":"integer"},"OverUtilizedMinutesBeforeScalingUp":{"type":"integer"},"OverUtilizedThreshold":{"type":"integer"},"ScalingMetric":{"$ref":"#/$defs/ScalingMetric"}},"additionalProperties":false,"type":"object","required":["MinReplicas","MaxReplicas","IdleMinutesBeforeScalingDown","IdleThreshold","OverUtilizedMinutesBeforeScalingUp","OverUtilizedThreshold","ScalingMetric"]},"BackupConfiguration":{"properties":{"BackupRetentionInDays":{"type":"integer"},"BackupPeriodInHours":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["BackupRetentionInDays","BackupPeriodInHours"]},"Capabilities":{"properties":{"Autoscaling":{"$ref":"#/$defs/AutoscalingConfiguration"},"HTTPReverseProxy":{"$ref":"#/$defs/HTTPReverseProxyConfiguration"},"CustomDNS":{"type":"object"},"ServerlessConfiguration":{"type":"object"},"EnableMultiZone":{"type":"boolean"},"EnableEndpointPerReplica":{"type":"boolean"},"NetworkType":{"type":"string"},"EnableStableEgressIP":{"type":"boolean"},"EnableClusterLoadBalancer":{"type":"boolean"},"EnableNodeLoadBalancer":{"type":"boolean"},"BackupConfiguration":{"$ref":"#/$defs/BackupConfiguration"},"ServiceAccountPolicies":{"type":"object"}},"additionalProperties":false,"type":"object","required":["Autoscaling","HTTPReverseProxy","CustomDNS","ServerlessConfiguration","EnableMultiZone","EnableEndpointPerReplica","NetworkType","EnableStableEgressIP","EnableClusterLoadBalancer","EnableNodeLoadBalancer","BackupConfiguration","ServiceAccountPolicies"]},"Compute":{"properties":{"InstanceTypes":{"items":{"$ref":"#/$defs/InstanceTypeConfiguration"},"type":"array"},"ReplicaCount":{"type":"integer"},"ReplicaCountAPIParam":{"type":"string"},"RootVolumeSizeGi":{"type":"integer"},"ResourceRequestMemoryAPIParam":{"type":"string"},"AutoscalingMinReplicasAPIParam":{"type":"string"},"AutoscalingMaxReplicasAPIParam":{"type":"string"},"Reservations":{"$ref":"#/$defs/ComputeUnit"},"Limits":{"$ref":"#/$defs/ComputeUnit"},"CPUArchitecture":{"type":"string"}},"additionalProperties":false,"type":"object","required":["InstanceTypes","ReplicaCount","ReplicaCountAPIParam","RootVolumeSizeGi","ResourceRequestMemoryAPIParam","AutoscalingMinReplicasAPIParam","AutoscalingMaxReplicasAPIParam","Reservations","Limits","CPUArchitecture"]},"ComputeUnit":{"properties":{"CPU":{"$ref":"#/$defs/Quantity"},"Memory":{"$ref":"#/$defs/Quantity"}},"additionalProperties":false,"type":"object","required":["CPU","Memory"]},"CustomServicePlanSpec":{"properties":{"name":{"type":"string"},"tenancyType":{"type":"string"},"deployment":{"properties":{"byoaDeployment":{"$ref":"#/$defs/Deployment"},"hostedDeployment":{"$ref":"#/$defs/Deployment"}},"additionalProperties":false,"type":"object"},"features":{"additionalProperties":{"type":"object"},"type":"object"},"Services":{"items":{"$ref":"#/$defs/ResourceConfiguration"},"type":"array"}},"additionalProperties":false,"type":"object","required":["Services"]},"Deployment":{"properties":{"AwsAccountId":{"type":"string"},"AWSBootstrapRoleAccountArn":{"type":"string"},"GcpProjectId":{"type":"string"},"GcpProjectNumber":{"type":"string"},"GcpServiceAccountEmail":{"type":"string"}},"additionalProperties":false,"type":"object"},"Files":{"properties":{"MountPath":{"type":"string"},"Content":{"type":"string","contentEncoding":"base64"}},"additionalProperties":false,"type":"object","required":["MountPath","Content"]},"GenericMap":{"type":"object"},"GitConfiguration":{"properties":{"Username":{"type":"string"},"AccessToken":{"type":"string"},"Reference":{"type":"string"},"RepositoryUrl":{"type":"string"}},"additionalProperties":false,"type":"object","required":["Username","AccessToken","Reference","RepositoryUrl"]},"HTTPReverseProxyConfiguration":{"properties":{"TargetPort":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["TargetPort"]},"HelmChartConfiguration":{"properties":{"ChartName":{"type":"string"},"ChartVersion":{"type":"string"},"ChartRepoName":{"type":"string"},"ChartRepoURL":{"type":"string"},"ChartValues":{"$ref":"#/$defs/GenericMap"}},"additionalProperties":false,"type":"object","required":["ChartName","ChartVersion","ChartRepoName","ChartRepoURL","ChartValues"]},"InstanceTypeConfiguration":{"properties":{"Name":{"type":"string"},"APIParam":{"type":"string"},"CloudProvider":{"type":"string"}},"additionalProperties":false,"type":"object","required":["Name","APIParam","CloudProvider"]},"IntOrString":{"properties":{"Type":{"type":"integer"},"IntVal":{"type":"integer"},"StrVal":{"type":"string"}},"additionalProperties":false,"type":"object","required":["Type","IntVal","StrVal"]},"KustomizeConfiguration":{"properties":{"KustomizePath":{"type":"string"},"GitConfiguration":{"$ref":"#/$defs/GitConfiguration"}},"additionalProperties":false,"type":"object","required":["KustomizePath","GitConfiguration"]},"Limits":{"properties":{"Min":{"type":"integer"},"Max":{"type":"integer"},"MinLength":{"type":"integer"},"MaxLength":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["Min","Max","MinLength","MaxLength"]},"Network":{"properties":{"ports":{"items":{"type":"integer"},"type":"array"}},"additionalProperties":false,"type":"object"},"OperatorCRDConfiguration":{"properties":{"Template":{"type":"string"},"OutputParameters":{"additionalProperties":{"type":"string"},"type":"object"},"ReadinessConditions":{"type":"object"},"HelmChartDependencies":{"items":{"$ref":"#/$defs/OperatorHelmChartDependency"},"type":"array"},"SupplementalFiles":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object","required":["Template","OutputParameters","ReadinessConditions","HelmChartDependencies","SupplementalFiles"]},"OperatorHelmChartDependency":{"properties":{"ChartName":{"type":"string"},"ChartVersion":{"type":"string"}},"additionalProperties":false,"type":"object","required":["ChartName","ChartVersion"]},"Quantity":{"properties":{"Format":{"type":"string"}},"additionalProperties":false,"type":"object","required":["Format"]},"ResourceConfiguration":{"properties":{"Name":{"type":"string"},"Description":{"type":"string"},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"SysCTLs":{"additionalProperties":{"type":"string"},"type":"object"},"ULimits":{"additionalProperties":{"$ref":"#/$defs/ULimitValue"},"type":"object"},"Internal":{"type":"boolean"},"ProxyType":{"type":"string"},"EnvironmentVariables":{"additionalProperties":{"type":"string"},"type":"object"},"Privileged":{"type":"boolean"},"UserID":{"type":"string"},"GroupIDs":{"items":{"type":"string"},"type":"array"},"ActionHooks":{"items":{"$ref":"#/$defs/ActionHook"},"type":"array"},"Configs":{"items":{"$ref":"#/$defs/Files"},"type":"array"},"Secrets":{"items":{"$ref":"#/$defs/Files"},"type":"array"},"Capabilities":{"$ref":"#/$defs/Capabilities"},"Image":{"type":"string"},"Entrypoint":{"items":{"type":"string"},"type":"array"},"Command":{"items":{"type":"string"},"type":"array"},"Compute":{"$ref":"#/$defs/Compute"},"Network":{"$ref":"#/$defs/Network"},"Storage":{"items":{"$ref":"#/$defs/StorageVolumeConfig"},"type":"array"},"APIParameters":{"items":{"$ref":"#/$defs/APIParameterConfiguration"},"type":"array"},"AddSecurityCapabilities":{"items":{"type":"string"},"type":"array"},"DropSecurityCapabilities":{"items":{"type":"string"},"type":"array"},"DependsOn":{"items":{"type":"string"},"type":"array"},"KustomizeConfiguration":{"$ref":"#/$defs/KustomizeConfiguration"},"OperatorCRDConfiguration":{"$ref":"#/$defs/OperatorCRDConfiguration"},"HelmChartConfiguration":{"$ref":"#/$defs/HelmChartConfiguration"},"TerraformConfigurations":{"$ref":"#/$defs/TerraformConfigurations"}},"additionalProperties":false,"type":"object","required":["Name","Description","Labels","SysCTLs","ULimits","Internal","ProxyType","EnvironmentVariables","Privileged","UserID","GroupIDs","ActionHooks","Configs","Secrets","Capabilities","Image","Entrypoint","Command","Compute","Network","Storage","APIParameters","AddSecurityCapabilities","DropSecurityCapabilities","DependsOn","KustomizeConfiguration","OperatorCRDConfiguration","HelmChartConfiguration","TerraformConfigurations"]},"ScalingMetric":{"properties":{"MetricEndpoint":{"type":"string"},"MetricLabelName":{"type":"string"},"MetricLabelValue":{"type":"string"},"MetricName":{"type":"string"}},"additionalProperties":false,"type":"object","required":["MetricEndpoint","MetricLabelName","MetricLabelValue","MetricName"]},"StorageVolumeConfig":{"additionalProperties":{"$ref":"#/$defs/StorageVolumeParameters"},"type":"object"},"StorageVolumeParameters":{"properties":{"MountPath":{"type":"string"},"ClusterStorageType":{"type":"string"},"ClusterStorageTypeAPIParam":{"type":"string"},"ClusterStorageTypeActual":{"type":"string"},"InstanceStorageType":{"type":"string"},"InstanceStorageTypeAPIParam":{"type":"string"},"InstanceStorageTypeActual":{"type":"string"},"InstanceStorageIops":{"type":"number"},"InstanceStorageIopsAPIParam":{"type":"string"},"InstanceStorageIopsActual":{"type":"string"},"InstanceStorageSizeGi":{"type":"number"},"InstanceStorageSizeGiAPIParam":{"type":"string"},"InstanceStorageSizeGiActual":{"type":"string"},"InstanceStorageThroughputMiBps":{"type":"number"},"InstanceStorageThroughputAPIParam":{"type":"string"},"InstanceStorageThroughputMiBpsActual":{"type":"string"},"DisableBackup":{"type":"boolean"},"StorageResourceName":{"type":"string"}},"additionalProperties":false,"type":"object","required":["MountPath","ClusterStorageType","ClusterStorageTypeAPIParam","ClusterStorageTypeActual","InstanceStorageType","InstanceStorageTypeAPIParam","InstanceStorageTypeActual","InstanceStorageIops","InstanceStorageIopsAPIParam","InstanceStorageIopsActual","InstanceStorageSizeGi","InstanceStorageSizeGiAPIParam","InstanceStorageSizeGiActual","InstanceStorageThroughputMiBps","InstanceStorageThroughputAPIParam","InstanceStorageThroughputMiBpsActual","DisableBackup","StorageResourceName"]},"TerraformConfiguration":{"properties":{"TerraformPath":{"type":"string"},"GitConfiguration":{"$ref":"#/$defs/GitConfiguration"}},"additionalProperties":false,"type":"object","required":["TerraformPath","GitConfiguration"]},"TerraformConfigurations":{"properties":{"configurationPerCloudProvider":{"additionalProperties":{"$ref":"#/$defs/TerraformConfiguration"},"type":"object"}},"additionalProperties":false,"type":"object"},"ULimitValue":{"properties":{"Soft":{"type":"integer"},"Hard":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["Soft","Hard"]}}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment