Improve convert code and fix alias issues (#25)

We improve the convert code by rewriting the `get_typ`. It is now more
general and properly recurses on records and lists. This also surfaced a
bug where definition aliases did not generate correct code.
This commit is contained in:
Thomas Scholtes 2018-07-14 10:10:37 +02:00 committed by Fabrizio Ferrai
parent d7e9d809fc
commit 1dafd97c09
615 changed files with 680 additions and 672 deletions

View File

@ -3,45 +3,77 @@
import requests
import re
def get_typ(props, required, importing_from_default=False):
if '$ref' in props:
if importing_from_default:
relative = "../types/"
else:
relative = "./"
x = relative + '{}.dhall'.format(props['$ref'].split('/')[2])
elif 'type' in props:
typ = props['type']
kubernetes_tag = 'v1.11.0'
url = \
'https://raw.githubusercontent.com/kubernetes/kubernetes/{tag}/api/openapi-spec/swagger.json' \
.format(tag=kubernetes_tag)
# See https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/#required-fields
# because k8s API allows PUTS etc with partial data, it's not clear from the data types OR the API which
# fields are required for A POST... so we resort to .. RTFM
always_required = {'apiVersion', 'kind', 'metadata'}
required_for = {
'io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta': {'name'},
}
def schema_path_from_ref(prefix, ref):
return '{}/{}.dhall'.format(prefix, ref.split('/')[2])
def required_properties (schema_name, schema):
required = set(schema.get('required', [])) | always_required
if schema_name in required_for.keys():
required |= required_for[schema_name]
return required
def build_type(schema, path_prefix, schema_name=None):
"""
Take an OpenAPI Schema Object and return a corresponding Dhall type.
If the schema is a reference we translate the reference path to a
Dhall path and return that path. The ``path_prefix`` argument is
prepended to the returned path.
"""
if '$ref' in schema:
return schema_path_from_ref(path_prefix, schema['$ref'])
elif 'type' in schema:
typ = schema['type']
if typ == 'object':
x = '(List {mapKey : Text, mapValue : Text})'
return '(List {mapKey : Text, mapValue : Text})'
elif typ == 'array':
x = "List " + get_typ(props['items'], True, importing_from_default)
return 'List {}'.format(build_type(schema['items'], path_prefix))
else:
mapping = {
return {
'string' : 'Text',
'boolean': 'Bool',
'integer': 'Natural',
'number': 'Double',
}
x = mapping[typ]
}[typ]
elif 'properties' in schema:
required = required_properties(schema_name, schema)
fields = []
for propName, propSpec in schema['properties'].items():
propType = build_type(propSpec, path_prefix)
if propName not in required:
propType = 'Optional ({})'.format(propType)
fields.append(' {} : ({})\n'.format(labelize(propName), propType))
return '{' + ','.join(fields) + '}'
else:
raise ValueError('No type found')
if required:
return x
else:
return 'Optional ({})'.format(x)
# There are empty schemas that only have a description.
return '{}'
def get_default(prop, required, value):
if required and not value:
raise ValueError('Missing value for required property')
x = get_typ(prop, required, True)
if value:
return '("{}" : {})'.format(value, x)
typ = build_type(prop, '../types')
if not required:
return '([] : Optional ({}))'.format(typ)
elif value:
return '("{}" : {})'.format(value, typ)
else:
return '([] : {})'.format(x)
raise ValueError('Missing value for required property')
def get_static_data(modelSpec):
@ -91,44 +123,20 @@ def labelize(propName):
return propName
kubernetes_tag = 'v1.11.0'
url = \
'https://raw.githubusercontent.com/kubernetes/kubernetes/{tag}/api/openapi-spec/swagger.json' \
.format(tag=kubernetes_tag)
# See https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/#required-fields
# because k8s API allows PUTS etc with partial data, it's not clear from the data types OR the API which
# fields are required for A POST... so we resort to .. RTFM
always_required = {'apiVersion', 'kind', 'metadata'}
required_for = {
'io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta': {'name'},
}
def main():
spec = requests.get(url).json()
for modelName, modelSpec in spec['definitions'].items():
with open('types/' + modelName + '.dhall', 'w') as f:
if 'type' in modelSpec:
f.write('{}\n'.format(get_typ(modelSpec, True)))
else:
required = set(modelSpec.get('required', [])) | always_required
if modelName in required_for.keys():
required |= required_for[modelName]
properties = modelSpec.get('properties', {})
fields = [" {} : ({})\n".format(labelize(propName), get_typ(propVal, propName in required))
for propName, propVal in properties.items()]
f.write('{' + ','.join(fields) + '}\n')
f.write('{}\n'.format(build_type(modelSpec, '.', modelName)))
with open('default/' + modelName + '.dhall', 'w') as f:
if 'type' in modelSpec:
f.write('\(a : {}) -> a\n'.format(get_typ(modelSpec, True, True)))
f.write('\(a : {}) -> a\n'.format(build_type(modelSpec, '../types')))
elif '$ref' in modelSpec:
path = schema_path_from_ref('.', modelSpec['$ref'])
f.write('{}\n'.format(path))
else:
required = set(modelSpec.get('required', [])) | always_required
required = required_properties(modelName, modelSpec)
if modelName in required_for.keys():
required |= required_for[modelName]
@ -139,7 +147,7 @@ def main():
# If there's any required props, we make it a lambda
if len([k for k in properties if k in required]) > 0:
params = ['{} : ({})'.format(labelize(propName), get_typ(propVal, True, True))
params = ['{} : ({})'.format(labelize(propName), build_type(propVal, '../types'))
for propName, propVal in properties.items()
if propName in param_names]
f.write('\(_params : {' + ', '.join(params) + '}) ->\n')

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.AWSElasticBlockStoreVolumeSource.dhall
./io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.Affinity.dhall
./io.k8s.api.core.v1.Affinity.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.AttachedVolume.dhall
./io.k8s.api.core.v1.AttachedVolume.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.AzureDiskVolumeSource.dhall
./io.k8s.api.core.v1.AzureDiskVolumeSource.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.AzureFileVolumeSource.dhall
./io.k8s.api.core.v1.AzureFileVolumeSource.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.Binding.dhall
./io.k8s.api.core.v1.Binding.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.Capabilities.dhall
./io.k8s.api.core.v1.Capabilities.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.CephFSVolumeSource.dhall
./io.k8s.api.core.v1.CephFSVolumeSource.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.CinderVolumeSource.dhall
./io.k8s.api.core.v1.CinderVolumeSource.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.ComponentCondition.dhall
./io.k8s.api.core.v1.ComponentCondition.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.ComponentStatus.dhall
./io.k8s.api.core.v1.ComponentStatus.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.ComponentStatusList.dhall
./io.k8s.api.core.v1.ComponentStatusList.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.ConfigMap.dhall
./io.k8s.api.core.v1.ConfigMap.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.ConfigMapEnvSource.dhall
./io.k8s.api.core.v1.ConfigMapEnvSource.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.ConfigMapKeySelector.dhall
./io.k8s.api.core.v1.ConfigMapKeySelector.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.ConfigMapList.dhall
./io.k8s.api.core.v1.ConfigMapList.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.ConfigMapProjection.dhall
./io.k8s.api.core.v1.ConfigMapProjection.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.ConfigMapVolumeSource.dhall
./io.k8s.api.core.v1.ConfigMapVolumeSource.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.Container.dhall
./io.k8s.api.core.v1.Container.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.ContainerImage.dhall
./io.k8s.api.core.v1.ContainerImage.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.ContainerPort.dhall
./io.k8s.api.core.v1.ContainerPort.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.ContainerState.dhall
./io.k8s.api.core.v1.ContainerState.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.ContainerStateRunning.dhall
./io.k8s.api.core.v1.ContainerStateRunning.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.ContainerStateTerminated.dhall
./io.k8s.api.core.v1.ContainerStateTerminated.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.ContainerStateWaiting.dhall
./io.k8s.api.core.v1.ContainerStateWaiting.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.ContainerStatus.dhall
./io.k8s.api.core.v1.ContainerStatus.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.DaemonEndpoint.dhall
./io.k8s.api.core.v1.DaemonEndpoint.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.DownwardAPIProjection.dhall
./io.k8s.api.core.v1.DownwardAPIProjection.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.DownwardAPIVolumeFile.dhall
./io.k8s.api.core.v1.DownwardAPIVolumeFile.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.DownwardAPIVolumeSource.dhall
./io.k8s.api.core.v1.DownwardAPIVolumeSource.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.EmptyDirVolumeSource.dhall
./io.k8s.api.core.v1.EmptyDirVolumeSource.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.EndpointAddress.dhall
./io.k8s.api.core.v1.EndpointAddress.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.EndpointPort.dhall
./io.k8s.api.core.v1.EndpointPort.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.EndpointSubset.dhall
./io.k8s.api.core.v1.EndpointSubset.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.Endpoints.dhall
./io.k8s.api.core.v1.Endpoints.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.EndpointsList.dhall
./io.k8s.api.core.v1.EndpointsList.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.EnvFromSource.dhall
./io.k8s.api.core.v1.EnvFromSource.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.EnvVar.dhall
./io.k8s.api.core.v1.EnvVar.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.EnvVarSource.dhall
./io.k8s.api.core.v1.EnvVarSource.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.Event.dhall
./io.k8s.api.core.v1.Event.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.EventList.dhall
./io.k8s.api.core.v1.EventList.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.EventSource.dhall
./io.k8s.api.core.v1.EventSource.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.ExecAction.dhall
./io.k8s.api.core.v1.ExecAction.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.FCVolumeSource.dhall
./io.k8s.api.core.v1.FCVolumeSource.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.FlexVolumeSource.dhall
./io.k8s.api.core.v1.FlexVolumeSource.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.FlockerVolumeSource.dhall
./io.k8s.api.core.v1.FlockerVolumeSource.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.GCEPersistentDiskVolumeSource.dhall
./io.k8s.api.core.v1.GCEPersistentDiskVolumeSource.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.GitRepoVolumeSource.dhall
./io.k8s.api.core.v1.GitRepoVolumeSource.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.GlusterfsVolumeSource.dhall
./io.k8s.api.core.v1.GlusterfsVolumeSource.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.HTTPGetAction.dhall
./io.k8s.api.core.v1.HTTPGetAction.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.HTTPHeader.dhall
./io.k8s.api.core.v1.HTTPHeader.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.Handler.dhall
./io.k8s.api.core.v1.Handler.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.HostAlias.dhall
./io.k8s.api.core.v1.HostAlias.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.HostPathVolumeSource.dhall
./io.k8s.api.core.v1.HostPathVolumeSource.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.ISCSIVolumeSource.dhall
./io.k8s.api.core.v1.ISCSIVolumeSource.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.KeyToPath.dhall
./io.k8s.api.core.v1.KeyToPath.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.Lifecycle.dhall
./io.k8s.api.core.v1.Lifecycle.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.LimitRange.dhall
./io.k8s.api.core.v1.LimitRange.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.LimitRangeItem.dhall
./io.k8s.api.core.v1.LimitRangeItem.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.LimitRangeList.dhall
./io.k8s.api.core.v1.LimitRangeList.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.LimitRangeSpec.dhall
./io.k8s.api.core.v1.LimitRangeSpec.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.LoadBalancerIngress.dhall
./io.k8s.api.core.v1.LoadBalancerIngress.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.LoadBalancerStatus.dhall
./io.k8s.api.core.v1.LoadBalancerStatus.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.LocalObjectReference.dhall
./io.k8s.api.core.v1.LocalObjectReference.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.LocalVolumeSource.dhall
./io.k8s.api.core.v1.LocalVolumeSource.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.NFSVolumeSource.dhall
./io.k8s.api.core.v1.NFSVolumeSource.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.Namespace.dhall
./io.k8s.api.core.v1.Namespace.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.NamespaceList.dhall
./io.k8s.api.core.v1.NamespaceList.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.NamespaceSpec.dhall
./io.k8s.api.core.v1.NamespaceSpec.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.NamespaceStatus.dhall
./io.k8s.api.core.v1.NamespaceStatus.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.Node.dhall
./io.k8s.api.core.v1.Node.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.NodeAddress.dhall
./io.k8s.api.core.v1.NodeAddress.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.NodeAffinity.dhall
./io.k8s.api.core.v1.NodeAffinity.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.NodeCondition.dhall
./io.k8s.api.core.v1.NodeCondition.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.NodeDaemonEndpoints.dhall
./io.k8s.api.core.v1.NodeDaemonEndpoints.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.NodeList.dhall
./io.k8s.api.core.v1.NodeList.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.NodeSelector.dhall
./io.k8s.api.core.v1.NodeSelector.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.NodeSelectorRequirement.dhall
./io.k8s.api.core.v1.NodeSelectorRequirement.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.NodeSelectorTerm.dhall
./io.k8s.api.core.v1.NodeSelectorTerm.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.NodeSpec.dhall
./io.k8s.api.core.v1.NodeSpec.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.NodeStatus.dhall
./io.k8s.api.core.v1.NodeStatus.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.NodeSystemInfo.dhall
./io.k8s.api.core.v1.NodeSystemInfo.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.ObjectFieldSelector.dhall
./io.k8s.api.core.v1.ObjectFieldSelector.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.ObjectReference.dhall
./io.k8s.api.core.v1.ObjectReference.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.PersistentVolume.dhall
./io.k8s.api.core.v1.PersistentVolume.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaim.dhall
./io.k8s.api.core.v1.PersistentVolumeClaim.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaimList.dhall
./io.k8s.api.core.v1.PersistentVolumeClaimList.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaimSpec.dhall
./io.k8s.api.core.v1.PersistentVolumeClaimSpec.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaimStatus.dhall
./io.k8s.api.core.v1.PersistentVolumeClaimStatus.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaimVolumeSource.dhall
./io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.PersistentVolumeList.dhall
./io.k8s.api.core.v1.PersistentVolumeList.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.PersistentVolumeSpec.dhall
./io.k8s.api.core.v1.PersistentVolumeSpec.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.PersistentVolumeStatus.dhall
./io.k8s.api.core.v1.PersistentVolumeStatus.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.PhotonPersistentDiskVolumeSource.dhall
./io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.Pod.dhall
./io.k8s.api.core.v1.Pod.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.PodAffinity.dhall
./io.k8s.api.core.v1.PodAffinity.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.PodAffinityTerm.dhall
./io.k8s.api.core.v1.PodAffinityTerm.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.PodAntiAffinity.dhall
./io.k8s.api.core.v1.PodAntiAffinity.dhall

View File

@ -1 +1 @@
{=} : ../types/io.k8s.kubernetes.pkg.api.v1.PodCondition.dhall
./io.k8s.api.core.v1.PodCondition.dhall

Some files were not shown because too many files have changed in this diff Show More