Skip to content

Instantly share code, notes, and snippets.

@aloknnikhil
Created September 17, 2024 16:40
Show Gist options
  • Save aloknnikhil/24abb70f110e0379c7ee77234b3fc6d0 to your computer and use it in GitHub Desktop.
Save aloknnikhil/24abb70f110e0379c7ee77234b3fc6d0 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"},"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"},"BackupConfiguration":{"properties":{"backupRetentionInDays":{"type":"integer"},"backupPeriodInHours":{"type":"integer"}},"additionalProperties":false,"type":"object"},"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"},"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"},"ComputeUnit":{"properties":{"cpu":{"$ref":"#/$defs/Quantity"},"memory":{"$ref":"#/$defs/Quantity"}},"additionalProperties":false,"type":"object"},"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":["reference","repositoryUrl"]},"HTTPReverseProxyConfiguration":{"properties":{"targetPort":{"type":"integer"}},"additionalProperties":false,"type":"object"},"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"},"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"]},"Limits":{"properties":{"min":{"type":"integer"},"max":{"type":"integer"},"minLength":{"type":"integer"},"maxLength":{"type":"integer"}},"additionalProperties":false,"type":"object"},"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"},"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"]},"ScalingMetric":{"properties":{"metricEndpoint":{"type":"string"},"metricLabelName":{"type":"string"},"metricLabelValue":{"type":"string"},"metricName":{"type":"string"}},"additionalProperties":false,"type":"object"},"StorageVolumeConfig":{"additionalProperties":{"$ref":"#/$defs/StorageVolumeParameters"},"type":"object"},"StorageVolumeParameters":{"properties":{"clusterStorageType":{"type":"string"},"clusterStorageTypeAPIParam":{"type":"string"},"instanceStorageType":{"type":"string"},"instanceStorageTypeAPIParam":{"type":"string"},"instanceStorageIOPS":{"type":"number"},"instanceStorageIOPSAPIParam":{"type":"string"},"instanceStorageSizeGi":{"type":"number"},"instanceStorageSizeGiAPIParam":{"type":"string"},"instanceStorageThroughputMiBps":{"type":"number"},"instanceStorageThroughputAPIParam":{"type":"string"},"disableBackup":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"TerraformConfiguration":{"properties":{"terraformPath":{"type":"string"},"gitConfiguration":{"$ref":"#/$defs/GitConfiguration"}},"additionalProperties":false,"type":"object","required":["terraformPath"]},"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"}}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment