Run make update

This commit is contained in:
Morten Torkildsen
2025-02-28 19:28:26 +00:00
parent 8f7b43b6fd
commit 68040a3173
36 changed files with 2295 additions and 373 deletions

View File

@@ -14959,7 +14959,7 @@
"description": "Opaque provides driver-specific configuration parameters."
},
"requests": {
"description": "Requests lists the names of requests where the configuration applies. If empty, its applies to all requests.",
"description": "Requests lists the names of requests where the configuration applies. If empty, its applies to all requests.\n\nReferences to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.",
"items": {
"type": "string"
},
@@ -15059,7 +15059,7 @@
"description": "Opaque provides driver-specific configuration parameters."
},
"requests": {
"description": "Requests lists the names of requests where the configuration applies. If empty, it applies to all requests.",
"description": "Requests lists the names of requests where the configuration applies. If empty, it applies to all requests.\n\nReferences to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.",
"items": {
"type": "string"
},
@@ -15176,7 +15176,7 @@
"type": "string"
},
"requests": {
"description": "Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim.",
"description": "Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim.\n\nReferences to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the constraint applies to all subrequests.",
"items": {
"type": "string"
},
@@ -15187,7 +15187,7 @@
"type": "object"
},
"io.k8s.api.resource.v1alpha3.DeviceRequest": {
"description": "DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices.\n\nA DeviceClassName is currently required. Clients must check that it is indeed set. It's absence indicates that something changed in a way that is not supported by the client yet, in which case it must refuse to handle the request.",
"description": "DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices.",
"properties": {
"adminAccess": {
"description": "AdminAccess indicates that this is a claim for administrative access to the device(s). Claims with AdminAccess are expected to be used for monitoring or other management services for a device. They ignore all ordinary claims to the device with respect to access modes and any resource allocations.\n\nThis is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled.",
@@ -15203,9 +15203,17 @@
"type": "integer"
},
"deviceClassName": {
"description": "DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.\n\nA class is required. Which classes are available depends on the cluster.\n\nAdministrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.",
"description": "DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.\n\nA class is required if no subrequests are specified in the firstAvailable list. Which classes are available depends on the cluster.\n\nAdministrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.",
"type": "string"
},
"firstAvailable": {
"description": "FirstAvailable contains subrequests, of which exactly one will be satisfied by the scheduler to satisfy this request. It tries to satisfy them in the order in which they are listed here. So if there are two entries in the list, the schduler will only check the second one if it determines that the first one can not be used.\n\nThis field may only be set in the entries of DeviceClaim.Requests.\n\nDRA does not yet implement scoring, so the scheduler will select the first set of devices that satisfies all the requests in the claim. And if the requirements can be satisfied on more than one node, other scheduling features will determine which node is chosen. This means that the set of devices allocated to a claim might not be the optimal set available to the cluster. Scoring will be implemented later.",
"items": {
"$ref": "#/definitions/io.k8s.api.resource.v1alpha3.DeviceSubRequest"
},
"type": "array",
"x-kubernetes-list-type": "atomic"
},
"name": {
"description": "Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim.\n\nMust be a DNS label.",
"type": "string"
@@ -15220,8 +15228,7 @@
}
},
"required": [
"name",
"deviceClassName"
"name"
],
"type": "object"
},
@@ -15245,7 +15252,7 @@
"type": "string"
},
"request": {
"description": "Request is the name of the request in the claim which caused this device to be allocated. Multiple devices may have been allocated per request.",
"description": "Request is the name of the request in the claim which caused this device to be allocated. If it references a subrequest in the firstAvailable list on a DeviceRequest, this field must include both the name of the main request and the subrequest using the format <main request>/<subrequest>.\n\nMultiple devices may have been allocated per request.",
"type": "string"
}
},
@@ -15267,6 +15274,41 @@
},
"type": "object"
},
"io.k8s.api.resource.v1alpha3.DeviceSubRequest": {
"description": "DeviceSubRequest describes a request for device provided in the claim.spec.devices.requests[].firstAvailable array. Each is typically a request for a single resource like a device, but can also ask for several identical devices.\n\nDeviceSubRequest is similar to Request, but doesn't expose the AdminAccess or FirstAvailable fields, as those can only be set on the top-level request. AdminAccess is not supported for requests with a prioritized list, and recursive FirstAvailable fields are not supported.",
"properties": {
"allocationMode": {
"description": "AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are:\n\n- ExactCount: This request is for a specific number of devices.\n This is the default. The exact number is provided in the\n count field.\n\n- All: This request is for all of the matching devices in a pool.\n Allocation will fail if some devices are already allocated,\n unless adminAccess is requested.\n\nIf AlloctionMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other requests must specify this field.\n\nMore modes may get added in the future. Clients must refuse to handle requests with unknown modes.",
"type": "string"
},
"count": {
"description": "Count is used only when the count mode is \"ExactCount\". Must be greater than zero. If AllocationMode is ExactCount and this field is not specified, the default is one.",
"format": "int64",
"type": "integer"
},
"deviceClassName": {
"description": "DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest.\n\nA class is required. Which classes are available depends on the cluster.\n\nAdministrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.",
"type": "string"
},
"name": {
"description": "Name can be used to reference this subrequest in the list of constraints or the list of configurations for the claim. References must use the format <main request>/<subrequest>.\n\nMust be a DNS label.",
"type": "string"
},
"selectors": {
"description": "Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this request. All selectors must be satisfied for a device to be considered.",
"items": {
"$ref": "#/definitions/io.k8s.api.resource.v1alpha3.DeviceSelector"
},
"type": "array",
"x-kubernetes-list-type": "atomic"
}
},
"required": [
"name",
"deviceClassName"
],
"type": "object"
},
"io.k8s.api.resource.v1alpha3.NetworkDeviceData": {
"description": "NetworkDeviceData provides network-related details for the allocated device. This information may be filled by drivers or other components to configure or identify the device within a network context.",
"properties": {
@@ -15779,7 +15821,7 @@
"description": "Opaque provides driver-specific configuration parameters."
},
"requests": {
"description": "Requests lists the names of requests where the configuration applies. If empty, its applies to all requests.",
"description": "Requests lists the names of requests where the configuration applies. If empty, its applies to all requests.\n\nReferences to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.",
"items": {
"type": "string"
},
@@ -15892,7 +15934,7 @@
"description": "Opaque provides driver-specific configuration parameters."
},
"requests": {
"description": "Requests lists the names of requests where the configuration applies. If empty, it applies to all requests.",
"description": "Requests lists the names of requests where the configuration applies. If empty, it applies to all requests.\n\nReferences to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.",
"items": {
"type": "string"
},
@@ -16009,7 +16051,7 @@
"type": "string"
},
"requests": {
"description": "Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim.",
"description": "Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim.\n\nReferences to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the constraint applies to all subrequests.",
"items": {
"type": "string"
},
@@ -16020,7 +16062,7 @@
"type": "object"
},
"io.k8s.api.resource.v1beta1.DeviceRequest": {
"description": "DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices.\n\nA DeviceClassName is currently required. Clients must check that it is indeed set. It's absence indicates that something changed in a way that is not supported by the client yet, in which case it must refuse to handle the request.",
"description": "DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices.",
"properties": {
"adminAccess": {
"description": "AdminAccess indicates that this is a claim for administrative access to the device(s). Claims with AdminAccess are expected to be used for monitoring or other management services for a device. They ignore all ordinary claims to the device with respect to access modes and any resource allocations.\n\nThis is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled.",
@@ -16036,11 +16078,19 @@
"type": "integer"
},
"deviceClassName": {
"description": "DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.\n\nA class is required. Which classes are available depends on the cluster.\n\nAdministrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.",
"description": "DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.\n\nA class is required if no subrequests are specified in the firstAvailable list. Which classes are available depends on the cluster.\n\nAdministrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.",
"type": "string"
},
"firstAvailable": {
"description": "FirstAvailable contains subrequests, of which exactly one will be satisfied by the scheduler to satisfy this request. It tries to satisfy them in the order in which they are listed here. So if there are two entries in the list, the schduler will only check the second one if it determines that the first one can not be used.\n\nThis field may only be set in the entries of DeviceClaim.Requests.\n\nDRA does not yet implement scoring, so the scheduler will select the first set of devices that satisfies all the requests in the claim. And if the requirements can be satisfied on more than one node, other scheduling features will determine which node is chosen. This means that the set of devices allocated to a claim might not be the optimal set available to the cluster. Scoring will be implemented later.",
"items": {
"$ref": "#/definitions/io.k8s.api.resource.v1beta1.DeviceSubRequest"
},
"type": "array",
"x-kubernetes-list-type": "atomic"
},
"name": {
"description": "Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim.\n\nMust be a DNS label.",
"description": "Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim.\n\nMust be a DNS label and unique among all DeviceRequests in a ResourceClaim.",
"type": "string"
},
"selectors": {
@@ -16053,8 +16103,7 @@
}
},
"required": [
"name",
"deviceClassName"
"name"
],
"type": "object"
},
@@ -16078,7 +16127,7 @@
"type": "string"
},
"request": {
"description": "Request is the name of the request in the claim which caused this device to be allocated. Multiple devices may have been allocated per request.",
"description": "Request is the name of the request in the claim which caused this device to be allocated. If it references a subrequest in the firstAvailable list on a DeviceRequest, this field must include both the name of the main request and the subrequest using the format <main request>/<subrequest>.\n\nMultiple devices may have been allocated per request.",
"type": "string"
}
},
@@ -16100,6 +16149,41 @@
},
"type": "object"
},
"io.k8s.api.resource.v1beta1.DeviceSubRequest": {
"description": "DeviceSubRequest describes a request for device provided in the claim.spec.devices.requests[].firstAvailable array. Each is typically a request for a single resource like a device, but can also ask for several identical devices.\n\nDeviceSubRequest is similar to Request, but doesn't expose the AdminAccess or FirstAvailable fields, as those can only be set on the top-level request. AdminAccess is not supported for requests with a prioritized list, and recursive FirstAvailable fields are not supported.",
"properties": {
"allocationMode": {
"description": "AllocationMode and its related fields define how devices are allocated to satisfy this subrequest. Supported values are:\n\n- ExactCount: This request is for a specific number of devices.\n This is the default. The exact number is provided in the\n count field.\n\n- All: This subrequest is for all of the matching devices in a pool.\n Allocation will fail if some devices are already allocated,\n unless adminAccess is requested.\n\nIf AlloctionMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other subrequests must specify this field.\n\nMore modes may get added in the future. Clients must refuse to handle requests with unknown modes.",
"type": "string"
},
"count": {
"description": "Count is used only when the count mode is \"ExactCount\". Must be greater than zero. If AllocationMode is ExactCount and this field is not specified, the default is one.",
"format": "int64",
"type": "integer"
},
"deviceClassName": {
"description": "DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest.\n\nA class is required. Which classes are available depends on the cluster.\n\nAdministrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.",
"type": "string"
},
"name": {
"description": "Name can be used to reference this subrequest in the list of constraints or the list of configurations for the claim. References must use the format <main request>/<subrequest>.\n\nMust be a DNS label.",
"type": "string"
},
"selectors": {
"description": "Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this subrequest. All selectors must be satisfied for a device to be considered.",
"items": {
"$ref": "#/definitions/io.k8s.api.resource.v1beta1.DeviceSelector"
},
"type": "array",
"x-kubernetes-list-type": "atomic"
}
},
"required": [
"name",
"deviceClassName"
],
"type": "object"
},
"io.k8s.api.resource.v1beta1.NetworkDeviceData": {
"description": "NetworkDeviceData provides network-related details for the allocated device. This information may be filled by drivers or other components to configure or identify the device within a network context.",
"properties": {

View File

@@ -240,7 +240,7 @@
"description": "Opaque provides driver-specific configuration parameters."
},
"requests": {
"description": "Requests lists the names of requests where the configuration applies. If empty, its applies to all requests.",
"description": "Requests lists the names of requests where the configuration applies. If empty, its applies to all requests.\n\nReferences to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.",
"items": {
"default": "",
"type": "string"
@@ -371,7 +371,7 @@
"description": "Opaque provides driver-specific configuration parameters."
},
"requests": {
"description": "Requests lists the names of requests where the configuration applies. If empty, it applies to all requests.",
"description": "Requests lists the names of requests where the configuration applies. If empty, it applies to all requests.\n\nReferences to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.",
"items": {
"default": "",
"type": "string"
@@ -523,7 +523,7 @@
"type": "string"
},
"requests": {
"description": "Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim.",
"description": "Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim.\n\nReferences to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the constraint applies to all subrequests.",
"items": {
"default": "",
"type": "string"
@@ -535,7 +535,7 @@
"type": "object"
},
"io.k8s.api.resource.v1alpha3.DeviceRequest": {
"description": "DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices.\n\nA DeviceClassName is currently required. Clients must check that it is indeed set. It's absence indicates that something changed in a way that is not supported by the client yet, in which case it must refuse to handle the request.",
"description": "DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices.",
"properties": {
"adminAccess": {
"description": "AdminAccess indicates that this is a claim for administrative access to the device(s). Claims with AdminAccess are expected to be used for monitoring or other management services for a device. They ignore all ordinary claims to the device with respect to access modes and any resource allocations.\n\nThis is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled.",
@@ -552,9 +552,22 @@
},
"deviceClassName": {
"default": "",
"description": "DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.\n\nA class is required. Which classes are available depends on the cluster.\n\nAdministrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.",
"description": "DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.\n\nA class is required if no subrequests are specified in the firstAvailable list. Which classes are available depends on the cluster.\n\nAdministrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.",
"type": "string"
},
"firstAvailable": {
"description": "FirstAvailable contains subrequests, of which exactly one will be satisfied by the scheduler to satisfy this request. It tries to satisfy them in the order in which they are listed here. So if there are two entries in the list, the schduler will only check the second one if it determines that the first one can not be used.\n\nThis field may only be set in the entries of DeviceClaim.Requests.\n\nDRA does not yet implement scoring, so the scheduler will select the first set of devices that satisfies all the requests in the claim. And if the requirements can be satisfied on more than one node, other scheduling features will determine which node is chosen. This means that the set of devices allocated to a claim might not be the optimal set available to the cluster. Scoring will be implemented later.",
"items": {
"allOf": [
{
"$ref": "#/components/schemas/io.k8s.api.resource.v1alpha3.DeviceSubRequest"
}
],
"default": {}
},
"type": "array",
"x-kubernetes-list-type": "atomic"
},
"name": {
"default": "",
"description": "Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim.\n\nMust be a DNS label.",
@@ -575,8 +588,7 @@
}
},
"required": [
"name",
"deviceClassName"
"name"
],
"type": "object"
},
@@ -604,7 +616,7 @@
},
"request": {
"default": "",
"description": "Request is the name of the request in the claim which caused this device to be allocated. Multiple devices may have been allocated per request.",
"description": "Request is the name of the request in the claim which caused this device to be allocated. If it references a subrequest in the firstAvailable list on a DeviceRequest, this field must include both the name of the main request and the subrequest using the format <main request>/<subrequest>.\n\nMultiple devices may have been allocated per request.",
"type": "string"
}
},
@@ -630,6 +642,48 @@
},
"type": "object"
},
"io.k8s.api.resource.v1alpha3.DeviceSubRequest": {
"description": "DeviceSubRequest describes a request for device provided in the claim.spec.devices.requests[].firstAvailable array. Each is typically a request for a single resource like a device, but can also ask for several identical devices.\n\nDeviceSubRequest is similar to Request, but doesn't expose the AdminAccess or FirstAvailable fields, as those can only be set on the top-level request. AdminAccess is not supported for requests with a prioritized list, and recursive FirstAvailable fields are not supported.",
"properties": {
"allocationMode": {
"description": "AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are:\n\n- ExactCount: This request is for a specific number of devices.\n This is the default. The exact number is provided in the\n count field.\n\n- All: This request is for all of the matching devices in a pool.\n Allocation will fail if some devices are already allocated,\n unless adminAccess is requested.\n\nIf AlloctionMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other requests must specify this field.\n\nMore modes may get added in the future. Clients must refuse to handle requests with unknown modes.",
"type": "string"
},
"count": {
"description": "Count is used only when the count mode is \"ExactCount\". Must be greater than zero. If AllocationMode is ExactCount and this field is not specified, the default is one.",
"format": "int64",
"type": "integer"
},
"deviceClassName": {
"default": "",
"description": "DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest.\n\nA class is required. Which classes are available depends on the cluster.\n\nAdministrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.",
"type": "string"
},
"name": {
"default": "",
"description": "Name can be used to reference this subrequest in the list of constraints or the list of configurations for the claim. References must use the format <main request>/<subrequest>.\n\nMust be a DNS label.",
"type": "string"
},
"selectors": {
"description": "Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this request. All selectors must be satisfied for a device to be considered.",
"items": {
"allOf": [
{
"$ref": "#/components/schemas/io.k8s.api.resource.v1alpha3.DeviceSelector"
}
],
"default": {}
},
"type": "array",
"x-kubernetes-list-type": "atomic"
}
},
"required": [
"name",
"deviceClassName"
],
"type": "object"
},
"io.k8s.api.resource.v1alpha3.NetworkDeviceData": {
"description": "NetworkDeviceData provides network-related details for the allocated device. This information may be filled by drivers or other components to configure or identify the device within a network context.",
"properties": {

View File

@@ -245,7 +245,7 @@
"description": "Opaque provides driver-specific configuration parameters."
},
"requests": {
"description": "Requests lists the names of requests where the configuration applies. If empty, its applies to all requests.",
"description": "Requests lists the names of requests where the configuration applies. If empty, its applies to all requests.\n\nReferences to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.",
"items": {
"default": "",
"type": "string"
@@ -393,7 +393,7 @@
"description": "Opaque provides driver-specific configuration parameters."
},
"requests": {
"description": "Requests lists the names of requests where the configuration applies. If empty, it applies to all requests.",
"description": "Requests lists the names of requests where the configuration applies. If empty, it applies to all requests.\n\nReferences to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.",
"items": {
"default": "",
"type": "string"
@@ -545,7 +545,7 @@
"type": "string"
},
"requests": {
"description": "Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim.",
"description": "Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim.\n\nReferences to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the constraint applies to all subrequests.",
"items": {
"default": "",
"type": "string"
@@ -557,7 +557,7 @@
"type": "object"
},
"io.k8s.api.resource.v1beta1.DeviceRequest": {
"description": "DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices.\n\nA DeviceClassName is currently required. Clients must check that it is indeed set. It's absence indicates that something changed in a way that is not supported by the client yet, in which case it must refuse to handle the request.",
"description": "DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices.",
"properties": {
"adminAccess": {
"description": "AdminAccess indicates that this is a claim for administrative access to the device(s). Claims with AdminAccess are expected to be used for monitoring or other management services for a device. They ignore all ordinary claims to the device with respect to access modes and any resource allocations.\n\nThis is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled.",
@@ -574,12 +574,25 @@
},
"deviceClassName": {
"default": "",
"description": "DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.\n\nA class is required. Which classes are available depends on the cluster.\n\nAdministrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.",
"description": "DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.\n\nA class is required if no subrequests are specified in the firstAvailable list. Which classes are available depends on the cluster.\n\nAdministrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.",
"type": "string"
},
"firstAvailable": {
"description": "FirstAvailable contains subrequests, of which exactly one will be satisfied by the scheduler to satisfy this request. It tries to satisfy them in the order in which they are listed here. So if there are two entries in the list, the schduler will only check the second one if it determines that the first one can not be used.\n\nThis field may only be set in the entries of DeviceClaim.Requests.\n\nDRA does not yet implement scoring, so the scheduler will select the first set of devices that satisfies all the requests in the claim. And if the requirements can be satisfied on more than one node, other scheduling features will determine which node is chosen. This means that the set of devices allocated to a claim might not be the optimal set available to the cluster. Scoring will be implemented later.",
"items": {
"allOf": [
{
"$ref": "#/components/schemas/io.k8s.api.resource.v1beta1.DeviceSubRequest"
}
],
"default": {}
},
"type": "array",
"x-kubernetes-list-type": "atomic"
},
"name": {
"default": "",
"description": "Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim.\n\nMust be a DNS label.",
"description": "Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim.\n\nMust be a DNS label and unique among all DeviceRequests in a ResourceClaim.",
"type": "string"
},
"selectors": {
@@ -597,8 +610,7 @@
}
},
"required": [
"name",
"deviceClassName"
"name"
],
"type": "object"
},
@@ -626,7 +638,7 @@
},
"request": {
"default": "",
"description": "Request is the name of the request in the claim which caused this device to be allocated. Multiple devices may have been allocated per request.",
"description": "Request is the name of the request in the claim which caused this device to be allocated. If it references a subrequest in the firstAvailable list on a DeviceRequest, this field must include both the name of the main request and the subrequest using the format <main request>/<subrequest>.\n\nMultiple devices may have been allocated per request.",
"type": "string"
}
},
@@ -652,6 +664,48 @@
},
"type": "object"
},
"io.k8s.api.resource.v1beta1.DeviceSubRequest": {
"description": "DeviceSubRequest describes a request for device provided in the claim.spec.devices.requests[].firstAvailable array. Each is typically a request for a single resource like a device, but can also ask for several identical devices.\n\nDeviceSubRequest is similar to Request, but doesn't expose the AdminAccess or FirstAvailable fields, as those can only be set on the top-level request. AdminAccess is not supported for requests with a prioritized list, and recursive FirstAvailable fields are not supported.",
"properties": {
"allocationMode": {
"description": "AllocationMode and its related fields define how devices are allocated to satisfy this subrequest. Supported values are:\n\n- ExactCount: This request is for a specific number of devices.\n This is the default. The exact number is provided in the\n count field.\n\n- All: This subrequest is for all of the matching devices in a pool.\n Allocation will fail if some devices are already allocated,\n unless adminAccess is requested.\n\nIf AlloctionMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other subrequests must specify this field.\n\nMore modes may get added in the future. Clients must refuse to handle requests with unknown modes.",
"type": "string"
},
"count": {
"description": "Count is used only when the count mode is \"ExactCount\". Must be greater than zero. If AllocationMode is ExactCount and this field is not specified, the default is one.",
"format": "int64",
"type": "integer"
},
"deviceClassName": {
"default": "",
"description": "DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest.\n\nA class is required. Which classes are available depends on the cluster.\n\nAdministrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.",
"type": "string"
},
"name": {
"default": "",
"description": "Name can be used to reference this subrequest in the list of constraints or the list of configurations for the claim. References must use the format <main request>/<subrequest>.\n\nMust be a DNS label.",
"type": "string"
},
"selectors": {
"description": "Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this subrequest. All selectors must be satisfied for a device to be considered.",
"items": {
"allOf": [
{
"$ref": "#/components/schemas/io.k8s.api.resource.v1beta1.DeviceSelector"
}
],
"default": {}
},
"type": "array",
"x-kubernetes-list-type": "atomic"
}
},
"required": [
"name",
"deviceClassName"
],
"type": "object"
},
"io.k8s.api.resource.v1beta1.NetworkDeviceData": {
"description": "NetworkDeviceData provides network-related details for the allocated device. This information may be filled by drivers or other components to configure or identify the device within a network context.",
"properties": {

View File

@@ -232,6 +232,16 @@ func RegisterConversions(s *runtime.Scheme) error {
}); err != nil {
return err
}
if err := s.AddGeneratedConversionFunc((*resourcev1alpha3.DeviceSubRequest)(nil), (*resource.DeviceSubRequest)(nil), func(a, b interface{}, scope conversion.Scope) error {
return Convert_v1alpha3_DeviceSubRequest_To_resource_DeviceSubRequest(a.(*resourcev1alpha3.DeviceSubRequest), b.(*resource.DeviceSubRequest), scope)
}); err != nil {
return err
}
if err := s.AddGeneratedConversionFunc((*resource.DeviceSubRequest)(nil), (*resourcev1alpha3.DeviceSubRequest)(nil), func(a, b interface{}, scope conversion.Scope) error {
return Convert_resource_DeviceSubRequest_To_v1alpha3_DeviceSubRequest(a.(*resource.DeviceSubRequest), b.(*resourcev1alpha3.DeviceSubRequest), scope)
}); err != nil {
return err
}
if err := s.AddGeneratedConversionFunc((*resourcev1alpha3.NetworkDeviceData)(nil), (*resource.NetworkDeviceData)(nil), func(a, b interface{}, scope conversion.Scope) error {
return Convert_v1alpha3_NetworkDeviceData_To_resource_NetworkDeviceData(a.(*resourcev1alpha3.NetworkDeviceData), b.(*resource.NetworkDeviceData), scope)
}); err != nil {
@@ -814,6 +824,7 @@ func autoConvert_v1alpha3_DeviceRequest_To_resource_DeviceRequest(in *resourcev1
out.AllocationMode = resource.DeviceAllocationMode(in.AllocationMode)
out.Count = in.Count
out.AdminAccess = (*bool)(unsafe.Pointer(in.AdminAccess))
out.FirstAvailable = *(*[]resource.DeviceSubRequest)(unsafe.Pointer(&in.FirstAvailable))
return nil
}
@@ -829,6 +840,7 @@ func autoConvert_resource_DeviceRequest_To_v1alpha3_DeviceRequest(in *resource.D
out.AllocationMode = resourcev1alpha3.DeviceAllocationMode(in.AllocationMode)
out.Count = in.Count
out.AdminAccess = (*bool)(unsafe.Pointer(in.AdminAccess))
out.FirstAvailable = *(*[]resourcev1alpha3.DeviceSubRequest)(unsafe.Pointer(&in.FirstAvailable))
return nil
}
@@ -885,6 +897,34 @@ func Convert_resource_DeviceSelector_To_v1alpha3_DeviceSelector(in *resource.Dev
return autoConvert_resource_DeviceSelector_To_v1alpha3_DeviceSelector(in, out, s)
}
func autoConvert_v1alpha3_DeviceSubRequest_To_resource_DeviceSubRequest(in *resourcev1alpha3.DeviceSubRequest, out *resource.DeviceSubRequest, s conversion.Scope) error {
out.Name = in.Name
out.DeviceClassName = in.DeviceClassName
out.Selectors = *(*[]resource.DeviceSelector)(unsafe.Pointer(&in.Selectors))
out.AllocationMode = resource.DeviceAllocationMode(in.AllocationMode)
out.Count = in.Count
return nil
}
// Convert_v1alpha3_DeviceSubRequest_To_resource_DeviceSubRequest is an autogenerated conversion function.
func Convert_v1alpha3_DeviceSubRequest_To_resource_DeviceSubRequest(in *resourcev1alpha3.DeviceSubRequest, out *resource.DeviceSubRequest, s conversion.Scope) error {
return autoConvert_v1alpha3_DeviceSubRequest_To_resource_DeviceSubRequest(in, out, s)
}
func autoConvert_resource_DeviceSubRequest_To_v1alpha3_DeviceSubRequest(in *resource.DeviceSubRequest, out *resourcev1alpha3.DeviceSubRequest, s conversion.Scope) error {
out.Name = in.Name
out.DeviceClassName = in.DeviceClassName
out.Selectors = *(*[]resourcev1alpha3.DeviceSelector)(unsafe.Pointer(&in.Selectors))
out.AllocationMode = resourcev1alpha3.DeviceAllocationMode(in.AllocationMode)
out.Count = in.Count
return nil
}
// Convert_resource_DeviceSubRequest_To_v1alpha3_DeviceSubRequest is an autogenerated conversion function.
func Convert_resource_DeviceSubRequest_To_v1alpha3_DeviceSubRequest(in *resource.DeviceSubRequest, out *resourcev1alpha3.DeviceSubRequest, s conversion.Scope) error {
return autoConvert_resource_DeviceSubRequest_To_v1alpha3_DeviceSubRequest(in, out, s)
}
func autoConvert_v1alpha3_NetworkDeviceData_To_resource_NetworkDeviceData(in *resourcev1alpha3.NetworkDeviceData, out *resource.NetworkDeviceData, s conversion.Scope) error {
out.InterfaceName = in.InterfaceName
out.IPs = *(*[]string)(unsafe.Pointer(&in.IPs))

View File

@@ -45,6 +45,10 @@ func SetObjectDefaults_ResourceClaim(in *resourcev1alpha3.ResourceClaim) {
for i := range in.Spec.Devices.Requests {
a := &in.Spec.Devices.Requests[i]
SetDefaults_DeviceRequest(a)
for j := range a.FirstAvailable {
b := &a.FirstAvailable[j]
SetDefaults_DeviceSubRequest(b)
}
}
}
@@ -59,6 +63,10 @@ func SetObjectDefaults_ResourceClaimTemplate(in *resourcev1alpha3.ResourceClaimT
for i := range in.Spec.Spec.Devices.Requests {
a := &in.Spec.Spec.Devices.Requests[i]
SetDefaults_DeviceRequest(a)
for j := range a.FirstAvailable {
b := &a.FirstAvailable[j]
SetDefaults_DeviceSubRequest(b)
}
}
}

View File

@@ -241,6 +241,16 @@ func RegisterConversions(s *runtime.Scheme) error {
}); err != nil {
return err
}
if err := s.AddGeneratedConversionFunc((*resourcev1beta1.DeviceSubRequest)(nil), (*resource.DeviceSubRequest)(nil), func(a, b interface{}, scope conversion.Scope) error {
return Convert_v1beta1_DeviceSubRequest_To_resource_DeviceSubRequest(a.(*resourcev1beta1.DeviceSubRequest), b.(*resource.DeviceSubRequest), scope)
}); err != nil {
return err
}
if err := s.AddGeneratedConversionFunc((*resource.DeviceSubRequest)(nil), (*resourcev1beta1.DeviceSubRequest)(nil), func(a, b interface{}, scope conversion.Scope) error {
return Convert_resource_DeviceSubRequest_To_v1beta1_DeviceSubRequest(a.(*resource.DeviceSubRequest), b.(*resourcev1beta1.DeviceSubRequest), scope)
}); err != nil {
return err
}
if err := s.AddGeneratedConversionFunc((*resourcev1beta1.NetworkDeviceData)(nil), (*resource.NetworkDeviceData)(nil), func(a, b interface{}, scope conversion.Scope) error {
return Convert_v1beta1_NetworkDeviceData_To_resource_NetworkDeviceData(a.(*resourcev1beta1.NetworkDeviceData), b.(*resource.NetworkDeviceData), scope)
}); err != nil {
@@ -793,6 +803,7 @@ func autoConvert_v1beta1_DeviceRequest_To_resource_DeviceRequest(in *resourcev1b
out.AllocationMode = resource.DeviceAllocationMode(in.AllocationMode)
out.Count = in.Count
out.AdminAccess = (*bool)(unsafe.Pointer(in.AdminAccess))
out.FirstAvailable = *(*[]resource.DeviceSubRequest)(unsafe.Pointer(&in.FirstAvailable))
return nil
}
@@ -808,6 +819,7 @@ func autoConvert_resource_DeviceRequest_To_v1beta1_DeviceRequest(in *resource.De
out.AllocationMode = resourcev1beta1.DeviceAllocationMode(in.AllocationMode)
out.Count = in.Count
out.AdminAccess = (*bool)(unsafe.Pointer(in.AdminAccess))
out.FirstAvailable = *(*[]resourcev1beta1.DeviceSubRequest)(unsafe.Pointer(&in.FirstAvailable))
return nil
}
@@ -864,6 +876,34 @@ func Convert_resource_DeviceSelector_To_v1beta1_DeviceSelector(in *resource.Devi
return autoConvert_resource_DeviceSelector_To_v1beta1_DeviceSelector(in, out, s)
}
func autoConvert_v1beta1_DeviceSubRequest_To_resource_DeviceSubRequest(in *resourcev1beta1.DeviceSubRequest, out *resource.DeviceSubRequest, s conversion.Scope) error {
out.Name = in.Name
out.DeviceClassName = in.DeviceClassName
out.Selectors = *(*[]resource.DeviceSelector)(unsafe.Pointer(&in.Selectors))
out.AllocationMode = resource.DeviceAllocationMode(in.AllocationMode)
out.Count = in.Count
return nil
}
// Convert_v1beta1_DeviceSubRequest_To_resource_DeviceSubRequest is an autogenerated conversion function.
func Convert_v1beta1_DeviceSubRequest_To_resource_DeviceSubRequest(in *resourcev1beta1.DeviceSubRequest, out *resource.DeviceSubRequest, s conversion.Scope) error {
return autoConvert_v1beta1_DeviceSubRequest_To_resource_DeviceSubRequest(in, out, s)
}
func autoConvert_resource_DeviceSubRequest_To_v1beta1_DeviceSubRequest(in *resource.DeviceSubRequest, out *resourcev1beta1.DeviceSubRequest, s conversion.Scope) error {
out.Name = in.Name
out.DeviceClassName = in.DeviceClassName
out.Selectors = *(*[]resourcev1beta1.DeviceSelector)(unsafe.Pointer(&in.Selectors))
out.AllocationMode = resourcev1beta1.DeviceAllocationMode(in.AllocationMode)
out.Count = in.Count
return nil
}
// Convert_resource_DeviceSubRequest_To_v1beta1_DeviceSubRequest is an autogenerated conversion function.
func Convert_resource_DeviceSubRequest_To_v1beta1_DeviceSubRequest(in *resource.DeviceSubRequest, out *resourcev1beta1.DeviceSubRequest, s conversion.Scope) error {
return autoConvert_resource_DeviceSubRequest_To_v1beta1_DeviceSubRequest(in, out, s)
}
func autoConvert_v1beta1_NetworkDeviceData_To_resource_NetworkDeviceData(in *resourcev1beta1.NetworkDeviceData, out *resource.NetworkDeviceData, s conversion.Scope) error {
out.InterfaceName = in.InterfaceName
out.IPs = *(*[]string)(unsafe.Pointer(&in.IPs))

View File

@@ -45,6 +45,10 @@ func SetObjectDefaults_ResourceClaim(in *resourcev1beta1.ResourceClaim) {
for i := range in.Spec.Devices.Requests {
a := &in.Spec.Devices.Requests[i]
SetDefaults_DeviceRequest(a)
for j := range a.FirstAvailable {
b := &a.FirstAvailable[j]
SetDefaults_DeviceSubRequest(b)
}
}
}
@@ -59,6 +63,10 @@ func SetObjectDefaults_ResourceClaimTemplate(in *resourcev1beta1.ResourceClaimTe
for i := range in.Spec.Spec.Devices.Requests {
a := &in.Spec.Spec.Devices.Requests[i]
SetDefaults_DeviceRequest(a)
for j := range a.FirstAvailable {
b := &a.FirstAvailable[j]
SetDefaults_DeviceSubRequest(b)
}
}
}

View File

@@ -482,6 +482,13 @@ func (in *DeviceRequest) DeepCopyInto(out *DeviceRequest) {
*out = new(bool)
**out = **in
}
if in.FirstAvailable != nil {
in, out := &in.FirstAvailable, &out.FirstAvailable
*out = make([]DeviceSubRequest, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
return
}
@@ -537,6 +544,29 @@ func (in *DeviceSelector) DeepCopy() *DeviceSelector {
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *DeviceSubRequest) DeepCopyInto(out *DeviceSubRequest) {
*out = *in
if in.Selectors != nil {
in, out := &in.Selectors, &out.Selectors
*out = make([]DeviceSelector, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceSubRequest.
func (in *DeviceSubRequest) DeepCopy() *DeviceSubRequest {
if in == nil {
return nil
}
out := new(DeviceSubRequest)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *NetworkDeviceData) DeepCopyInto(out *NetworkDeviceData) {
*out = *in

View File

@@ -930,6 +930,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA
"k8s.io/api/resource/v1alpha3.DeviceRequest": schema_k8sio_api_resource_v1alpha3_DeviceRequest(ref),
"k8s.io/api/resource/v1alpha3.DeviceRequestAllocationResult": schema_k8sio_api_resource_v1alpha3_DeviceRequestAllocationResult(ref),
"k8s.io/api/resource/v1alpha3.DeviceSelector": schema_k8sio_api_resource_v1alpha3_DeviceSelector(ref),
"k8s.io/api/resource/v1alpha3.DeviceSubRequest": schema_k8sio_api_resource_v1alpha3_DeviceSubRequest(ref),
"k8s.io/api/resource/v1alpha3.NetworkDeviceData": schema_k8sio_api_resource_v1alpha3_NetworkDeviceData(ref),
"k8s.io/api/resource/v1alpha3.OpaqueDeviceConfiguration": schema_k8sio_api_resource_v1alpha3_OpaqueDeviceConfiguration(ref),
"k8s.io/api/resource/v1alpha3.ResourceClaim": schema_k8sio_api_resource_v1alpha3_ResourceClaim(ref),
@@ -964,6 +965,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA
"k8s.io/api/resource/v1beta1.DeviceRequest": schema_k8sio_api_resource_v1beta1_DeviceRequest(ref),
"k8s.io/api/resource/v1beta1.DeviceRequestAllocationResult": schema_k8sio_api_resource_v1beta1_DeviceRequestAllocationResult(ref),
"k8s.io/api/resource/v1beta1.DeviceSelector": schema_k8sio_api_resource_v1beta1_DeviceSelector(ref),
"k8s.io/api/resource/v1beta1.DeviceSubRequest": schema_k8sio_api_resource_v1beta1_DeviceSubRequest(ref),
"k8s.io/api/resource/v1beta1.NetworkDeviceData": schema_k8sio_api_resource_v1beta1_NetworkDeviceData(ref),
"k8s.io/api/resource/v1beta1.OpaqueDeviceConfiguration": schema_k8sio_api_resource_v1beta1_OpaqueDeviceConfiguration(ref),
"k8s.io/api/resource/v1beta1.ResourceClaim": schema_k8sio_api_resource_v1beta1_ResourceClaim(ref),
@@ -47070,7 +47072,7 @@ func schema_k8sio_api_resource_v1alpha3_DeviceAllocationConfiguration(ref common
},
},
SchemaProps: spec.SchemaProps{
Description: "Requests lists the names of requests where the configuration applies. If empty, its applies to all requests.",
Description: "Requests lists the names of requests where the configuration applies. If empty, its applies to all requests.\n\nReferences to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.",
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
@@ -47278,7 +47280,7 @@ func schema_k8sio_api_resource_v1alpha3_DeviceClaimConfiguration(ref common.Refe
},
},
SchemaProps: spec.SchemaProps{
Description: "Requests lists the names of requests where the configuration applies. If empty, it applies to all requests.",
Description: "Requests lists the names of requests where the configuration applies. If empty, it applies to all requests.\n\nReferences to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.",
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
@@ -47509,7 +47511,7 @@ func schema_k8sio_api_resource_v1alpha3_DeviceConstraint(ref common.ReferenceCal
},
},
SchemaProps: spec.SchemaProps{
Description: "Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim.",
Description: "Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim.\n\nReferences to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the constraint applies to all subrequests.",
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
@@ -47539,7 +47541,7 @@ func schema_k8sio_api_resource_v1alpha3_DeviceRequest(ref common.ReferenceCallba
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices.\n\nA DeviceClassName is currently required. Clients must check that it is indeed set. It's absence indicates that something changed in a way that is not supported by the client yet, in which case it must refuse to handle the request.",
Description: "DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"name": {
@@ -47552,7 +47554,7 @@ func schema_k8sio_api_resource_v1alpha3_DeviceRequest(ref common.ReferenceCallba
},
"deviceClassName": {
SchemaProps: spec.SchemaProps{
Description: "DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.\n\nA class is required. Which classes are available depends on the cluster.\n\nAdministrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.",
Description: "DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.\n\nA class is required if no subrequests are specified in the firstAvailable list. Which classes are available depends on the cluster.\n\nAdministrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.",
Default: "",
Type: []string{"string"},
Format: "",
@@ -47598,12 +47600,31 @@ func schema_k8sio_api_resource_v1alpha3_DeviceRequest(ref common.ReferenceCallba
Format: "",
},
},
"firstAvailable": {
VendorExtensible: spec.VendorExtensible{
Extensions: spec.Extensions{
"x-kubernetes-list-type": "atomic",
},
},
SchemaProps: spec.SchemaProps{
Description: "FirstAvailable contains subrequests, of which exactly one will be satisfied by the scheduler to satisfy this request. It tries to satisfy them in the order in which they are listed here. So if there are two entries in the list, the schduler will only check the second one if it determines that the first one can not be used.\n\nThis field may only be set in the entries of DeviceClaim.Requests.\n\nDRA does not yet implement scoring, so the scheduler will select the first set of devices that satisfies all the requests in the claim. And if the requirements can be satisfied on more than one node, other scheduling features will determine which node is chosen. This means that the set of devices allocated to a claim might not be the optimal set available to the cluster. Scoring will be implemented later.",
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("k8s.io/api/resource/v1alpha3.DeviceSubRequest"),
},
},
},
},
},
},
Required: []string{"name", "deviceClassName"},
Required: []string{"name"},
},
},
Dependencies: []string{
"k8s.io/api/resource/v1alpha3.DeviceSelector"},
"k8s.io/api/resource/v1alpha3.DeviceSelector", "k8s.io/api/resource/v1alpha3.DeviceSubRequest"},
}
}
@@ -47616,7 +47637,7 @@ func schema_k8sio_api_resource_v1alpha3_DeviceRequestAllocationResult(ref common
Properties: map[string]spec.Schema{
"request": {
SchemaProps: spec.SchemaProps{
Description: "Request is the name of the request in the claim which caused this device to be allocated. Multiple devices may have been allocated per request.",
Description: "Request is the name of the request in the claim which caused this device to be allocated. If it references a subrequest in the firstAvailable list on a DeviceRequest, this field must include both the name of the main request and the subrequest using the format <main request>/<subrequest>.\n\nMultiple devices may have been allocated per request.",
Default: "",
Type: []string{"string"},
Format: "",
@@ -47681,6 +47702,71 @@ func schema_k8sio_api_resource_v1alpha3_DeviceSelector(ref common.ReferenceCallb
}
}
func schema_k8sio_api_resource_v1alpha3_DeviceSubRequest(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "DeviceSubRequest describes a request for device provided in the claim.spec.devices.requests[].firstAvailable array. Each is typically a request for a single resource like a device, but can also ask for several identical devices.\n\nDeviceSubRequest is similar to Request, but doesn't expose the AdminAccess or FirstAvailable fields, as those can only be set on the top-level request. AdminAccess is not supported for requests with a prioritized list, and recursive FirstAvailable fields are not supported.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"name": {
SchemaProps: spec.SchemaProps{
Description: "Name can be used to reference this subrequest in the list of constraints or the list of configurations for the claim. References must use the format <main request>/<subrequest>.\n\nMust be a DNS label.",
Default: "",
Type: []string{"string"},
Format: "",
},
},
"deviceClassName": {
SchemaProps: spec.SchemaProps{
Description: "DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest.\n\nA class is required. Which classes are available depends on the cluster.\n\nAdministrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.",
Default: "",
Type: []string{"string"},
Format: "",
},
},
"selectors": {
VendorExtensible: spec.VendorExtensible{
Extensions: spec.Extensions{
"x-kubernetes-list-type": "atomic",
},
},
SchemaProps: spec.SchemaProps{
Description: "Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this request. All selectors must be satisfied for a device to be considered.",
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("k8s.io/api/resource/v1alpha3.DeviceSelector"),
},
},
},
},
},
"allocationMode": {
SchemaProps: spec.SchemaProps{
Description: "AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are:\n\n- ExactCount: This request is for a specific number of devices.\n This is the default. The exact number is provided in the\n count field.\n\n- All: This request is for all of the matching devices in a pool.\n Allocation will fail if some devices are already allocated,\n unless adminAccess is requested.\n\nIf AlloctionMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other requests must specify this field.\n\nMore modes may get added in the future. Clients must refuse to handle requests with unknown modes.",
Type: []string{"string"},
Format: "",
},
},
"count": {
SchemaProps: spec.SchemaProps{
Description: "Count is used only when the count mode is \"ExactCount\". Must be greater than zero. If AllocationMode is ExactCount and this field is not specified, the default is one.",
Type: []string{"integer"},
Format: "int64",
},
},
},
Required: []string{"name", "deviceClassName"},
},
},
Dependencies: []string{
"k8s.io/api/resource/v1alpha3.DeviceSelector"},
}
}
func schema_k8sio_api_resource_v1alpha3_NetworkDeviceData(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
@@ -48545,7 +48631,7 @@ func schema_k8sio_api_resource_v1beta1_DeviceAllocationConfiguration(ref common.
},
},
SchemaProps: spec.SchemaProps{
Description: "Requests lists the names of requests where the configuration applies. If empty, its applies to all requests.",
Description: "Requests lists the names of requests where the configuration applies. If empty, its applies to all requests.\n\nReferences to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.",
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
@@ -48775,7 +48861,7 @@ func schema_k8sio_api_resource_v1beta1_DeviceClaimConfiguration(ref common.Refer
},
},
SchemaProps: spec.SchemaProps{
Description: "Requests lists the names of requests where the configuration applies. If empty, it applies to all requests.",
Description: "Requests lists the names of requests where the configuration applies. If empty, it applies to all requests.\n\nReferences to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.",
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
@@ -49006,7 +49092,7 @@ func schema_k8sio_api_resource_v1beta1_DeviceConstraint(ref common.ReferenceCall
},
},
SchemaProps: spec.SchemaProps{
Description: "Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim.",
Description: "Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim.\n\nReferences to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the constraint applies to all subrequests.",
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
@@ -49036,12 +49122,12 @@ func schema_k8sio_api_resource_v1beta1_DeviceRequest(ref common.ReferenceCallbac
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices.\n\nA DeviceClassName is currently required. Clients must check that it is indeed set. It's absence indicates that something changed in a way that is not supported by the client yet, in which case it must refuse to handle the request.",
Description: "DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"name": {
SchemaProps: spec.SchemaProps{
Description: "Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim.\n\nMust be a DNS label.",
Description: "Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim.\n\nMust be a DNS label and unique among all DeviceRequests in a ResourceClaim.",
Default: "",
Type: []string{"string"},
Format: "",
@@ -49049,7 +49135,7 @@ func schema_k8sio_api_resource_v1beta1_DeviceRequest(ref common.ReferenceCallbac
},
"deviceClassName": {
SchemaProps: spec.SchemaProps{
Description: "DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.\n\nA class is required. Which classes are available depends on the cluster.\n\nAdministrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.",
Description: "DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.\n\nA class is required if no subrequests are specified in the firstAvailable list. Which classes are available depends on the cluster.\n\nAdministrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.",
Default: "",
Type: []string{"string"},
Format: "",
@@ -49095,12 +49181,31 @@ func schema_k8sio_api_resource_v1beta1_DeviceRequest(ref common.ReferenceCallbac
Format: "",
},
},
"firstAvailable": {
VendorExtensible: spec.VendorExtensible{
Extensions: spec.Extensions{
"x-kubernetes-list-type": "atomic",
},
},
SchemaProps: spec.SchemaProps{
Description: "FirstAvailable contains subrequests, of which exactly one will be satisfied by the scheduler to satisfy this request. It tries to satisfy them in the order in which they are listed here. So if there are two entries in the list, the schduler will only check the second one if it determines that the first one can not be used.\n\nThis field may only be set in the entries of DeviceClaim.Requests.\n\nDRA does not yet implement scoring, so the scheduler will select the first set of devices that satisfies all the requests in the claim. And if the requirements can be satisfied on more than one node, other scheduling features will determine which node is chosen. This means that the set of devices allocated to a claim might not be the optimal set available to the cluster. Scoring will be implemented later.",
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("k8s.io/api/resource/v1beta1.DeviceSubRequest"),
},
},
},
},
},
},
Required: []string{"name", "deviceClassName"},
Required: []string{"name"},
},
},
Dependencies: []string{
"k8s.io/api/resource/v1beta1.DeviceSelector"},
"k8s.io/api/resource/v1beta1.DeviceSelector", "k8s.io/api/resource/v1beta1.DeviceSubRequest"},
}
}
@@ -49113,7 +49218,7 @@ func schema_k8sio_api_resource_v1beta1_DeviceRequestAllocationResult(ref common.
Properties: map[string]spec.Schema{
"request": {
SchemaProps: spec.SchemaProps{
Description: "Request is the name of the request in the claim which caused this device to be allocated. Multiple devices may have been allocated per request.",
Description: "Request is the name of the request in the claim which caused this device to be allocated. If it references a subrequest in the firstAvailable list on a DeviceRequest, this field must include both the name of the main request and the subrequest using the format <main request>/<subrequest>.\n\nMultiple devices may have been allocated per request.",
Default: "",
Type: []string{"string"},
Format: "",
@@ -49178,6 +49283,71 @@ func schema_k8sio_api_resource_v1beta1_DeviceSelector(ref common.ReferenceCallba
}
}
func schema_k8sio_api_resource_v1beta1_DeviceSubRequest(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "DeviceSubRequest describes a request for device provided in the claim.spec.devices.requests[].firstAvailable array. Each is typically a request for a single resource like a device, but can also ask for several identical devices.\n\nDeviceSubRequest is similar to Request, but doesn't expose the AdminAccess or FirstAvailable fields, as those can only be set on the top-level request. AdminAccess is not supported for requests with a prioritized list, and recursive FirstAvailable fields are not supported.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"name": {
SchemaProps: spec.SchemaProps{
Description: "Name can be used to reference this subrequest in the list of constraints or the list of configurations for the claim. References must use the format <main request>/<subrequest>.\n\nMust be a DNS label.",
Default: "",
Type: []string{"string"},
Format: "",
},
},
"deviceClassName": {
SchemaProps: spec.SchemaProps{
Description: "DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest.\n\nA class is required. Which classes are available depends on the cluster.\n\nAdministrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.",
Default: "",
Type: []string{"string"},
Format: "",
},
},
"selectors": {
VendorExtensible: spec.VendorExtensible{
Extensions: spec.Extensions{
"x-kubernetes-list-type": "atomic",
},
},
SchemaProps: spec.SchemaProps{
Description: "Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this subrequest. All selectors must be satisfied for a device to be considered.",
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("k8s.io/api/resource/v1beta1.DeviceSelector"),
},
},
},
},
},
"allocationMode": {
SchemaProps: spec.SchemaProps{
Description: "AllocationMode and its related fields define how devices are allocated to satisfy this subrequest. Supported values are:\n\n- ExactCount: This request is for a specific number of devices.\n This is the default. The exact number is provided in the\n count field.\n\n- All: This subrequest is for all of the matching devices in a pool.\n Allocation will fail if some devices are already allocated,\n unless adminAccess is requested.\n\nIf AlloctionMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other subrequests must specify this field.\n\nMore modes may get added in the future. Clients must refuse to handle requests with unknown modes.",
Type: []string{"string"},
Format: "",
},
},
"count": {
SchemaProps: spec.SchemaProps{
Description: "Count is used only when the count mode is \"ExactCount\". Must be greater than zero. If AllocationMode is ExactCount and this field is not specified, the default is one.",
Type: []string{"integer"},
Format: "int64",
},
},
},
Required: []string{"name", "deviceClassName"},
},
},
Dependencies: []string{
"k8s.io/api/resource/v1beta1.DeviceSelector"},
}
}
func schema_k8sio_api_resource_v1beta1_NetworkDeviceData(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{

View File

@@ -582,10 +582,38 @@ func (m *DeviceSelector) XXX_DiscardUnknown() {
var xxx_messageInfo_DeviceSelector proto.InternalMessageInfo
func (m *DeviceSubRequest) Reset() { *m = DeviceSubRequest{} }
func (*DeviceSubRequest) ProtoMessage() {}
func (*DeviceSubRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_66649ee9bbcd89d2, []int{19}
}
func (m *DeviceSubRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *DeviceSubRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
if err != nil {
return nil, err
}
return b[:n], nil
}
func (m *DeviceSubRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_DeviceSubRequest.Merge(m, src)
}
func (m *DeviceSubRequest) XXX_Size() int {
return m.Size()
}
func (m *DeviceSubRequest) XXX_DiscardUnknown() {
xxx_messageInfo_DeviceSubRequest.DiscardUnknown(m)
}
var xxx_messageInfo_DeviceSubRequest proto.InternalMessageInfo
func (m *NetworkDeviceData) Reset() { *m = NetworkDeviceData{} }
func (*NetworkDeviceData) ProtoMessage() {}
func (*NetworkDeviceData) Descriptor() ([]byte, []int) {
return fileDescriptor_66649ee9bbcd89d2, []int{19}
return fileDescriptor_66649ee9bbcd89d2, []int{20}
}
func (m *NetworkDeviceData) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -613,7 +641,7 @@ var xxx_messageInfo_NetworkDeviceData proto.InternalMessageInfo
func (m *OpaqueDeviceConfiguration) Reset() { *m = OpaqueDeviceConfiguration{} }
func (*OpaqueDeviceConfiguration) ProtoMessage() {}
func (*OpaqueDeviceConfiguration) Descriptor() ([]byte, []int) {
return fileDescriptor_66649ee9bbcd89d2, []int{20}
return fileDescriptor_66649ee9bbcd89d2, []int{21}
}
func (m *OpaqueDeviceConfiguration) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -641,7 +669,7 @@ var xxx_messageInfo_OpaqueDeviceConfiguration proto.InternalMessageInfo
func (m *ResourceClaim) Reset() { *m = ResourceClaim{} }
func (*ResourceClaim) ProtoMessage() {}
func (*ResourceClaim) Descriptor() ([]byte, []int) {
return fileDescriptor_66649ee9bbcd89d2, []int{21}
return fileDescriptor_66649ee9bbcd89d2, []int{22}
}
func (m *ResourceClaim) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -669,7 +697,7 @@ var xxx_messageInfo_ResourceClaim proto.InternalMessageInfo
func (m *ResourceClaimConsumerReference) Reset() { *m = ResourceClaimConsumerReference{} }
func (*ResourceClaimConsumerReference) ProtoMessage() {}
func (*ResourceClaimConsumerReference) Descriptor() ([]byte, []int) {
return fileDescriptor_66649ee9bbcd89d2, []int{22}
return fileDescriptor_66649ee9bbcd89d2, []int{23}
}
func (m *ResourceClaimConsumerReference) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -697,7 +725,7 @@ var xxx_messageInfo_ResourceClaimConsumerReference proto.InternalMessageInfo
func (m *ResourceClaimList) Reset() { *m = ResourceClaimList{} }
func (*ResourceClaimList) ProtoMessage() {}
func (*ResourceClaimList) Descriptor() ([]byte, []int) {
return fileDescriptor_66649ee9bbcd89d2, []int{23}
return fileDescriptor_66649ee9bbcd89d2, []int{24}
}
func (m *ResourceClaimList) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -725,7 +753,7 @@ var xxx_messageInfo_ResourceClaimList proto.InternalMessageInfo
func (m *ResourceClaimSpec) Reset() { *m = ResourceClaimSpec{} }
func (*ResourceClaimSpec) ProtoMessage() {}
func (*ResourceClaimSpec) Descriptor() ([]byte, []int) {
return fileDescriptor_66649ee9bbcd89d2, []int{24}
return fileDescriptor_66649ee9bbcd89d2, []int{25}
}
func (m *ResourceClaimSpec) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -753,7 +781,7 @@ var xxx_messageInfo_ResourceClaimSpec proto.InternalMessageInfo
func (m *ResourceClaimStatus) Reset() { *m = ResourceClaimStatus{} }
func (*ResourceClaimStatus) ProtoMessage() {}
func (*ResourceClaimStatus) Descriptor() ([]byte, []int) {
return fileDescriptor_66649ee9bbcd89d2, []int{25}
return fileDescriptor_66649ee9bbcd89d2, []int{26}
}
func (m *ResourceClaimStatus) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -781,7 +809,7 @@ var xxx_messageInfo_ResourceClaimStatus proto.InternalMessageInfo
func (m *ResourceClaimTemplate) Reset() { *m = ResourceClaimTemplate{} }
func (*ResourceClaimTemplate) ProtoMessage() {}
func (*ResourceClaimTemplate) Descriptor() ([]byte, []int) {
return fileDescriptor_66649ee9bbcd89d2, []int{26}
return fileDescriptor_66649ee9bbcd89d2, []int{27}
}
func (m *ResourceClaimTemplate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -809,7 +837,7 @@ var xxx_messageInfo_ResourceClaimTemplate proto.InternalMessageInfo
func (m *ResourceClaimTemplateList) Reset() { *m = ResourceClaimTemplateList{} }
func (*ResourceClaimTemplateList) ProtoMessage() {}
func (*ResourceClaimTemplateList) Descriptor() ([]byte, []int) {
return fileDescriptor_66649ee9bbcd89d2, []int{27}
return fileDescriptor_66649ee9bbcd89d2, []int{28}
}
func (m *ResourceClaimTemplateList) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -837,7 +865,7 @@ var xxx_messageInfo_ResourceClaimTemplateList proto.InternalMessageInfo
func (m *ResourceClaimTemplateSpec) Reset() { *m = ResourceClaimTemplateSpec{} }
func (*ResourceClaimTemplateSpec) ProtoMessage() {}
func (*ResourceClaimTemplateSpec) Descriptor() ([]byte, []int) {
return fileDescriptor_66649ee9bbcd89d2, []int{28}
return fileDescriptor_66649ee9bbcd89d2, []int{29}
}
func (m *ResourceClaimTemplateSpec) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -865,7 +893,7 @@ var xxx_messageInfo_ResourceClaimTemplateSpec proto.InternalMessageInfo
func (m *ResourcePool) Reset() { *m = ResourcePool{} }
func (*ResourcePool) ProtoMessage() {}
func (*ResourcePool) Descriptor() ([]byte, []int) {
return fileDescriptor_66649ee9bbcd89d2, []int{29}
return fileDescriptor_66649ee9bbcd89d2, []int{30}
}
func (m *ResourcePool) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -893,7 +921,7 @@ var xxx_messageInfo_ResourcePool proto.InternalMessageInfo
func (m *ResourceSlice) Reset() { *m = ResourceSlice{} }
func (*ResourceSlice) ProtoMessage() {}
func (*ResourceSlice) Descriptor() ([]byte, []int) {
return fileDescriptor_66649ee9bbcd89d2, []int{30}
return fileDescriptor_66649ee9bbcd89d2, []int{31}
}
func (m *ResourceSlice) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -921,7 +949,7 @@ var xxx_messageInfo_ResourceSlice proto.InternalMessageInfo
func (m *ResourceSliceList) Reset() { *m = ResourceSliceList{} }
func (*ResourceSliceList) ProtoMessage() {}
func (*ResourceSliceList) Descriptor() ([]byte, []int) {
return fileDescriptor_66649ee9bbcd89d2, []int{31}
return fileDescriptor_66649ee9bbcd89d2, []int{32}
}
func (m *ResourceSliceList) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -949,7 +977,7 @@ var xxx_messageInfo_ResourceSliceList proto.InternalMessageInfo
func (m *ResourceSliceSpec) Reset() { *m = ResourceSliceSpec{} }
func (*ResourceSliceSpec) ProtoMessage() {}
func (*ResourceSliceSpec) Descriptor() ([]byte, []int) {
return fileDescriptor_66649ee9bbcd89d2, []int{32}
return fileDescriptor_66649ee9bbcd89d2, []int{33}
}
func (m *ResourceSliceSpec) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -996,6 +1024,7 @@ func init() {
proto.RegisterType((*DeviceRequest)(nil), "k8s.io.api.resource.v1alpha3.DeviceRequest")
proto.RegisterType((*DeviceRequestAllocationResult)(nil), "k8s.io.api.resource.v1alpha3.DeviceRequestAllocationResult")
proto.RegisterType((*DeviceSelector)(nil), "k8s.io.api.resource.v1alpha3.DeviceSelector")
proto.RegisterType((*DeviceSubRequest)(nil), "k8s.io.api.resource.v1alpha3.DeviceSubRequest")
proto.RegisterType((*NetworkDeviceData)(nil), "k8s.io.api.resource.v1alpha3.NetworkDeviceData")
proto.RegisterType((*OpaqueDeviceConfiguration)(nil), "k8s.io.api.resource.v1alpha3.OpaqueDeviceConfiguration")
proto.RegisterType((*ResourceClaim)(nil), "k8s.io.api.resource.v1alpha3.ResourceClaim")
@@ -1017,134 +1046,138 @@ func init() {
}
var fileDescriptor_66649ee9bbcd89d2 = []byte{
// 2031 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x19, 0x4b, 0x73, 0x1c, 0x47,
0x59, 0xb3, 0xb3, 0x7a, 0x7d, 0xab, 0x97, 0xdb, 0x38, 0xc8, 0x22, 0xec, 0xca, 0x13, 0x0a, 0xe4,
0xc4, 0xd9, 0x8d, 0xe5, 0x54, 0x12, 0x30, 0x07, 0x34, 0x92, 0x62, 0x64, 0x6c, 0x59, 0x6e, 0x25,
0x2e, 0x0c, 0xc1, 0xd0, 0x9a, 0x6d, 0x49, 0x83, 0x66, 0x67, 0x36, 0xd3, 0x3d, 0x72, 0x74, 0xa1,
0x52, 0x70, 0x77, 0xf1, 0x07, 0xa8, 0xdc, 0xa8, 0xe2, 0x02, 0xfc, 0x03, 0xa8, 0x82, 0x2a, 0x5c,
0x70, 0x71, 0x15, 0x1c, 0x72, 0x5a, 0xe2, 0xa5, 0x38, 0x73, 0xf7, 0x89, 0xea, 0x9e, 0x9e, 0xe7,
0xee, 0xc8, 0xb3, 0xa9, 0xa0, 0x32, 0xb7, 0x9d, 0xef, 0xdd, 0xdf, 0xbb, 0x7b, 0xe1, 0xca, 0xd1,
0x3b, 0xac, 0x69, 0x7b, 0x2d, 0xd2, 0xb5, 0x5b, 0x3e, 0x65, 0x5e, 0xe0, 0x5b, 0xb4, 0x75, 0x7c,
0x95, 0x38, 0xdd, 0x43, 0x72, 0xad, 0x75, 0x40, 0x5d, 0xea, 0x13, 0x4e, 0xdb, 0xcd, 0xae, 0xef,
0x71, 0x0f, 0xbd, 0x1c, 0x52, 0x37, 0x49, 0xd7, 0x6e, 0x46, 0xd4, 0xcd, 0x88, 0x7a, 0xe9, 0xf5,
0x03, 0x9b, 0x1f, 0x06, 0x7b, 0x4d, 0xcb, 0xeb, 0xb4, 0x0e, 0xbc, 0x03, 0xaf, 0x25, 0x99, 0xf6,
0x82, 0x7d, 0xf9, 0x25, 0x3f, 0xe4, 0xaf, 0x50, 0xd8, 0x92, 0x91, 0x52, 0x6d, 0x79, 0xbe, 0x50,
0x9b, 0x57, 0xb8, 0xf4, 0x66, 0x42, 0xd3, 0x21, 0xd6, 0xa1, 0xed, 0x52, 0xff, 0xa4, 0xd5, 0x3d,
0x3a, 0xc8, 0xda, 0x3b, 0x0a, 0x17, 0x6b, 0x75, 0x28, 0x27, 0xc3, 0x74, 0xb5, 0x8a, 0xb8, 0xfc,
0xc0, 0xe5, 0x76, 0x67, 0x50, 0xcd, 0x5b, 0xcf, 0x63, 0x60, 0xd6, 0x21, 0xed, 0x90, 0x3c, 0x9f,
0xf1, 0x89, 0x0e, 0x17, 0xd6, 0x1c, 0xc7, 0xb3, 0x04, 0x6c, 0x83, 0x1e, 0xdb, 0x16, 0xdd, 0xe5,
0x84, 0x07, 0x0c, 0x7d, 0x1d, 0x26, 0xda, 0xbe, 0x7d, 0x4c, 0xfd, 0x45, 0x6d, 0x59, 0x5b, 0x99,
0x36, 0xe7, 0x1e, 0xf7, 0x1a, 0x63, 0xfd, 0x5e, 0x63, 0x62, 0x43, 0x42, 0xb1, 0xc2, 0xa2, 0x65,
0xa8, 0x76, 0x3d, 0xcf, 0x59, 0xac, 0x48, 0xaa, 0x19, 0x45, 0x55, 0xdd, 0xf1, 0x3c, 0x07, 0x4b,
0x8c, 0x94, 0x24, 0x25, 0x2f, 0xea, 0x39, 0x49, 0x12, 0x8a, 0x15, 0x16, 0x59, 0x00, 0x96, 0xe7,
0xb6, 0x6d, 0x6e, 0x7b, 0x2e, 0x5b, 0xac, 0x2e, 0xeb, 0x2b, 0xb5, 0xd5, 0x56, 0x33, 0x09, 0x73,
0x7c, 0xb0, 0x66, 0xf7, 0xe8, 0x40, 0x00, 0x58, 0x53, 0xf8, 0xaf, 0x79, 0x7c, 0xb5, 0xb9, 0x1e,
0xf1, 0x99, 0x48, 0x09, 0x87, 0x18, 0xc4, 0x70, 0x4a, 0x2c, 0xfa, 0x1e, 0x54, 0xdb, 0x84, 0x93,
0xc5, 0xf1, 0x65, 0x6d, 0xa5, 0xb6, 0xfa, 0x7a, 0xa1, 0x78, 0xe5, 0xb7, 0x26, 0x26, 0x0f, 0x37,
0x3f, 0xe2, 0xd4, 0x65, 0x42, 0xf8, 0x94, 0x38, 0xd9, 0x06, 0xe1, 0x04, 0x4b, 0x21, 0x68, 0x0f,
0x6a, 0x2e, 0xe5, 0x0f, 0x3d, 0xff, 0x48, 0x00, 0x17, 0x27, 0xa4, 0xcc, 0xb4, 0xc9, 0x83, 0x99,
0xd9, 0xdc, 0x56, 0x0c, 0xf2, 0xcc, 0x82, 0xcd, 0x9c, 0xef, 0xf7, 0x1a, 0xb5, 0xed, 0x44, 0x0e,
0x4e, 0x0b, 0x35, 0xfe, 0xa6, 0xc1, 0x82, 0x8a, 0x90, 0xed, 0xb9, 0x98, 0xb2, 0xc0, 0xe1, 0xe8,
0xc7, 0x30, 0x19, 0x3a, 0x8d, 0xc9, 0xe8, 0xd4, 0x56, 0xdf, 0x3c, 0x5d, 0x69, 0xa8, 0x2d, 0x2f,
0xc6, 0x9c, 0x57, 0xce, 0x9a, 0x0c, 0xf1, 0x0c, 0x47, 0x52, 0xd1, 0x3d, 0x98, 0x71, 0xbd, 0x36,
0xdd, 0xa5, 0x0e, 0xb5, 0xb8, 0xe7, 0xcb, 0xc8, 0xd5, 0x56, 0x97, 0xd3, 0x5a, 0x44, 0x9d, 0x08,
0xdf, 0x6f, 0xa7, 0xe8, 0xcc, 0x85, 0x7e, 0xaf, 0x31, 0x93, 0x86, 0xe0, 0x8c, 0x1c, 0xe3, 0x33,
0x1d, 0x6a, 0x26, 0x61, 0xb6, 0x15, 0x6a, 0x44, 0x3f, 0x03, 0x20, 0x9c, 0xfb, 0xf6, 0x5e, 0xc0,
0xe5, 0x59, 0x44, 0xcc, 0xbf, 0x79, 0xfa, 0x59, 0x52, 0xec, 0xcd, 0xb5, 0x98, 0x77, 0xd3, 0xe5,
0xfe, 0x89, 0xf9, 0x4a, 0x14, 0xfd, 0x04, 0xf1, 0xf3, 0x7f, 0x36, 0x66, 0xef, 0x06, 0xc4, 0xb1,
0xf7, 0x6d, 0xda, 0xde, 0x26, 0x1d, 0x8a, 0x53, 0x1a, 0xd1, 0x31, 0x4c, 0x59, 0xa4, 0x4b, 0x2c,
0x9b, 0x9f, 0x2c, 0x56, 0xa4, 0xf6, 0xb7, 0xcb, 0x6b, 0x5f, 0x57, 0x9c, 0xa1, 0xee, 0x4b, 0x4a,
0xf7, 0x54, 0x04, 0x1e, 0xd4, 0x1c, 0xeb, 0x5a, 0x72, 0x60, 0x3e, 0x67, 0x3b, 0x5a, 0x00, 0xfd,
0x88, 0x9e, 0x84, 0xd5, 0x86, 0xc5, 0x4f, 0xb4, 0x0e, 0xe3, 0xc7, 0xc4, 0x09, 0xa8, 0xac, 0xad,
0x6c, 0xb2, 0x16, 0xc7, 0x38, 0x92, 0x8a, 0x43, 0xde, 0x6f, 0x55, 0xde, 0xd1, 0x96, 0x8e, 0x60,
0x36, 0x63, 0xeb, 0x10, 0x5d, 0x1b, 0x59, 0x5d, 0xcd, 0xd3, 0xea, 0x2e, 0x51, 0x7e, 0x37, 0x20,
0x2e, 0xb7, 0xf9, 0x49, 0x4a, 0x99, 0x71, 0x03, 0xce, 0xad, 0x6f, 0xde, 0x52, 0xbd, 0x44, 0xc5,
0x1d, 0xad, 0x02, 0xd0, 0x8f, 0xba, 0x3e, 0x65, 0xa2, 0x8e, 0x54, 0x47, 0x89, 0x4b, 0x75, 0x33,
0xc6, 0xe0, 0x14, 0x95, 0x71, 0x0c, 0xaa, 0x43, 0x88, 0x1e, 0xe3, 0x92, 0x0e, 0x55, 0x7c, 0x71,
0x8f, 0x91, 0x3e, 0x95, 0x18, 0x74, 0x13, 0xc6, 0xf7, 0x44, 0x64, 0x94, 0xf9, 0x97, 0x4b, 0x07,
0xd1, 0x9c, 0xee, 0xf7, 0x1a, 0xe3, 0x12, 0x80, 0x43, 0x11, 0xc6, 0xa3, 0x0a, 0x7c, 0x35, 0x5f,
0x30, 0xeb, 0x9e, 0xbb, 0x6f, 0x1f, 0x04, 0xbe, 0xfc, 0x40, 0xdf, 0x81, 0x89, 0x50, 0xa4, 0xb2,
0x68, 0x25, 0xea, 0x68, 0xbb, 0x12, 0xfa, 0xac, 0xd7, 0x78, 0x29, 0xcf, 0x1a, 0x62, 0xb0, 0xe2,
0x43, 0x2b, 0x30, 0xe5, 0xd3, 0x0f, 0x03, 0xca, 0x38, 0x93, 0x79, 0x37, 0x6d, 0xce, 0x88, 0xd4,
0xc1, 0x0a, 0x86, 0x63, 0x2c, 0xfa, 0x58, 0x83, 0xf3, 0x61, 0x55, 0x66, 0x6c, 0x50, 0x15, 0x79,
0xb5, 0x4c, 0x4e, 0x64, 0x18, 0xcd, 0xaf, 0x28, 0x63, 0xcf, 0x0f, 0x41, 0xe2, 0x61, 0xaa, 0x8c,
0x7f, 0x6b, 0xf0, 0xd2, 0xf0, 0x0e, 0x82, 0xf6, 0x61, 0xd2, 0x97, 0xbf, 0xa2, 0xe2, 0xbd, 0x5e,
0xc6, 0x20, 0x75, 0xcc, 0xe2, 0x7e, 0x14, 0x7e, 0x33, 0x1c, 0x09, 0x47, 0x16, 0x4c, 0x58, 0xd2,
0x26, 0x55, 0xa5, 0xd7, 0x47, 0xeb, 0x77, 0x59, 0x0f, 0xc4, 0x03, 0x28, 0x04, 0x63, 0x25, 0xda,
0xf8, 0x8d, 0x06, 0xf3, 0xb9, 0x2a, 0x42, 0x75, 0xd0, 0x6d, 0x97, 0xcb, 0xb4, 0xd2, 0xc3, 0x18,
0x6d, 0xb9, 0xfc, 0x9e, 0x48, 0x76, 0x2c, 0x10, 0xe8, 0x12, 0x54, 0xf7, 0xc4, 0xf8, 0x13, 0xe1,
0x98, 0x32, 0x67, 0xfb, 0xbd, 0xc6, 0xb4, 0xe9, 0x79, 0x4e, 0x48, 0x21, 0x51, 0xe8, 0x1b, 0x30,
0xc1, 0xb8, 0x6f, 0xbb, 0x07, 0x8b, 0x55, 0x99, 0x2d, 0xb2, 0xdf, 0xef, 0x4a, 0x48, 0x48, 0xa6,
0xd0, 0xe8, 0x55, 0x98, 0x3c, 0xa6, 0xbe, 0xac, 0x90, 0x71, 0x49, 0x29, 0xbb, 0xe9, 0xbd, 0x10,
0x14, 0x92, 0x46, 0x04, 0xc6, 0xef, 0x2a, 0x50, 0x53, 0x01, 0x74, 0x88, 0xdd, 0x41, 0xf7, 0x53,
0x09, 0x15, 0x46, 0xe2, 0xb5, 0x11, 0x22, 0x61, 0x2e, 0x44, 0xcd, 0x6b, 0x48, 0x06, 0x52, 0xa8,
0x59, 0x9e, 0xcb, 0xb8, 0x4f, 0x6c, 0x57, 0xa5, 0x6b, 0xb6, 0x41, 0x9c, 0x96, 0x78, 0x8a, 0xcd,
0x3c, 0xaf, 0x14, 0xd4, 0x12, 0x18, 0xc3, 0x69, 0xb9, 0xe8, 0x41, 0x1c, 0x62, 0x5d, 0x6a, 0x78,
0xab, 0x94, 0x06, 0x71, 0xf8, 0x72, 0xd1, 0xfd, 0x8b, 0x06, 0x8b, 0x45, 0x4c, 0x99, 0x7a, 0xd4,
0x3e, 0x57, 0x3d, 0x56, 0xce, 0xae, 0x1e, 0xff, 0xa8, 0xa5, 0x62, 0xcf, 0x18, 0xfa, 0x09, 0x4c,
0x89, 0x45, 0x48, 0xee, 0x35, 0xe1, 0x3a, 0xf0, 0x46, 0xb9, 0xb5, 0xe9, 0xce, 0xde, 0x4f, 0xa9,
0xc5, 0x6f, 0x53, 0x4e, 0x92, 0x66, 0x9c, 0xc0, 0x70, 0x2c, 0x15, 0xdd, 0x81, 0x2a, 0xeb, 0x52,
0x6b, 0x94, 0x41, 0x24, 0x4d, 0xdb, 0xed, 0x52, 0x2b, 0xe9, 0xd7, 0xe2, 0x0b, 0x4b, 0x41, 0xc6,
0xaf, 0xd2, 0xc1, 0x60, 0x2c, 0x1b, 0x8c, 0x22, 0x17, 0x6b, 0x67, 0xe7, 0xe2, 0x3f, 0xc4, 0xad,
0x40, 0xda, 0x77, 0xcb, 0x66, 0x1c, 0x7d, 0x30, 0xe0, 0xe6, 0x66, 0x39, 0x37, 0x0b, 0x6e, 0xe9,
0xe4, 0xb8, 0xca, 0x22, 0x48, 0xca, 0xc5, 0xdb, 0x30, 0x6e, 0x73, 0xda, 0x89, 0xea, 0xeb, 0x72,
0x69, 0x1f, 0x9b, 0xb3, 0x4a, 0xea, 0xf8, 0x96, 0xe0, 0xc7, 0xa1, 0x18, 0xe3, 0x49, 0xf6, 0x04,
0xc2, 0xf7, 0xe8, 0x47, 0x30, 0xcd, 0xd4, 0x44, 0x8e, 0xba, 0xc4, 0x95, 0x32, 0x7a, 0xe2, 0xf5,
0xee, 0x9c, 0x52, 0x35, 0x1d, 0x41, 0x18, 0x4e, 0x24, 0xa6, 0x2a, 0xb8, 0x32, 0x52, 0x05, 0xe7,
0xe2, 0x5f, 0x58, 0xc1, 0x3e, 0x0c, 0x0b, 0x20, 0xfa, 0x21, 0x4c, 0x78, 0x5d, 0xf2, 0x61, 0x40,
0x55, 0x54, 0x9e, 0xb3, 0xc1, 0xdd, 0x91, 0xb4, 0xc3, 0xd2, 0x04, 0x84, 0xce, 0x10, 0x8d, 0x95,
0x48, 0xe3, 0x91, 0x06, 0x0b, 0xf9, 0x66, 0x36, 0x42, 0xb7, 0xd8, 0x81, 0xb9, 0x0e, 0xe1, 0xd6,
0x61, 0x3c, 0x50, 0xd4, 0x3d, 0x69, 0xa5, 0xdf, 0x6b, 0xcc, 0xdd, 0xce, 0x60, 0x9e, 0xf5, 0x1a,
0xe8, 0xdd, 0xc0, 0x71, 0x4e, 0xb2, 0x3b, 0x63, 0x8e, 0xdf, 0xf8, 0x85, 0x0e, 0xb3, 0x99, 0xde,
0x5d, 0x62, 0x3b, 0x5a, 0x83, 0xf9, 0x76, 0xe2, 0x6c, 0x81, 0x50, 0x66, 0x7c, 0x59, 0x11, 0xa7,
0x33, 0x45, 0xf2, 0xe5, 0xe9, 0xb3, 0xa9, 0xa3, 0x7f, 0xe1, 0xa9, 0x73, 0x0f, 0xe6, 0x48, 0x3c,
0xad, 0x6f, 0x7b, 0x6d, 0xaa, 0x66, 0x65, 0x53, 0x71, 0xcd, 0xad, 0x65, 0xb0, 0xcf, 0x7a, 0x8d,
0x2f, 0xe5, 0x67, 0xbc, 0x80, 0xe3, 0x9c, 0x14, 0xf4, 0x0a, 0x8c, 0x5b, 0x5e, 0xe0, 0x72, 0x39,
0x50, 0xf5, 0xa4, 0x54, 0xd6, 0x05, 0x10, 0x87, 0x38, 0x74, 0x15, 0x6a, 0xa4, 0xdd, 0xb1, 0xdd,
0x35, 0xcb, 0xa2, 0x8c, 0xc9, 0x6b, 0xdc, 0x54, 0x38, 0xa5, 0xd7, 0x12, 0x30, 0x4e, 0xd3, 0x18,
0xff, 0xd1, 0xa2, 0x1d, 0xb1, 0x60, 0x97, 0x41, 0x97, 0xc5, 0x66, 0x24, 0x51, 0x2a, 0x30, 0xa9,
0xe5, 0x46, 0x82, 0x71, 0x84, 0x4f, 0x5d, 0xb5, 0x2b, 0xa5, 0xae, 0xda, 0x7a, 0x89, 0xab, 0x76,
0xf5, 0xd4, 0xab, 0x76, 0xee, 0xc4, 0xe3, 0x25, 0x4e, 0xfc, 0x01, 0xcc, 0xe5, 0x76, 0xfa, 0x9b,
0xa0, 0x5b, 0xd4, 0x51, 0x45, 0xf7, 0x9c, 0x5b, 0xef, 0xc0, 0x8d, 0xc0, 0x9c, 0xec, 0xf7, 0x1a,
0xfa, 0xfa, 0xe6, 0x2d, 0x2c, 0x84, 0x18, 0xbf, 0xd5, 0xe0, 0xdc, 0xc0, 0xcd, 0x18, 0x5d, 0x87,
0x59, 0xdb, 0xe5, 0xd4, 0xdf, 0x27, 0x16, 0xdd, 0x4e, 0x52, 0xfc, 0x82, 0x3a, 0xd5, 0xec, 0x56,
0x1a, 0x89, 0xb3, 0xb4, 0xe8, 0x22, 0xe8, 0x76, 0x37, 0xda, 0xae, 0xa5, 0xb6, 0xad, 0x1d, 0x86,
0x05, 0x4c, 0xd4, 0xc3, 0x21, 0xf1, 0xdb, 0x0f, 0x89, 0x4f, 0xd7, 0xda, 0x6d, 0x71, 0xdf, 0x50,
0x3e, 0x8d, 0xeb, 0xe1, 0xbb, 0x59, 0x34, 0xce, 0xd3, 0x1b, 0xbf, 0xd6, 0xe0, 0x62, 0x61, 0x27,
0x29, 0xfd, 0x78, 0x42, 0x00, 0xba, 0xc4, 0x27, 0x1d, 0xca, 0xa9, 0xcf, 0x86, 0x4c, 0xd7, 0x12,
0x6f, 0x12, 0xf1, 0xe0, 0xde, 0x89, 0x05, 0xe1, 0x94, 0x50, 0xe3, 0x93, 0x0a, 0xcc, 0x62, 0x15,
0x8f, 0x70, 0x55, 0xfc, 0xdf, 0xaf, 0x0b, 0x77, 0x33, 0xeb, 0xc2, 0x73, 0x52, 0x23, 0x63, 0x5c,
0xd1, 0xc2, 0x80, 0xee, 0x8b, 0x25, 0x9a, 0xf0, 0x80, 0x95, 0xbb, 0xf8, 0x64, 0x85, 0x4a, 0xc6,
0x24, 0x08, 0xe1, 0x37, 0x56, 0x02, 0x8d, 0xbe, 0x06, 0xf5, 0x0c, 0xbd, 0xe8, 0xf4, 0x41, 0x87,
0xfa, 0x98, 0xee, 0x53, 0x9f, 0xba, 0x16, 0x45, 0x57, 0x60, 0x8a, 0x74, 0xed, 0x1b, 0xbe, 0x17,
0x74, 0x55, 0x44, 0xe3, 0x51, 0xbe, 0xb6, 0xb3, 0x25, 0xe1, 0x38, 0xa6, 0x10, 0xd4, 0x91, 0x45,
0x2a, 0xaf, 0x52, 0xeb, 0x75, 0x08, 0xc7, 0x31, 0x45, 0xdc, 0xbe, 0xab, 0x85, 0xed, 0xdb, 0x04,
0x3d, 0xb0, 0xdb, 0xea, 0x4e, 0xf0, 0x86, 0x22, 0xd0, 0xdf, 0xdf, 0xda, 0x78, 0xd6, 0x6b, 0x5c,
0x2a, 0x7a, 0xf8, 0xe3, 0x27, 0x5d, 0xca, 0x9a, 0xef, 0x6f, 0x6d, 0x60, 0xc1, 0x6c, 0xfc, 0x49,
0x83, 0x73, 0x99, 0x43, 0x9e, 0xc1, 0x4a, 0xb3, 0x93, 0x5d, 0x69, 0x5e, 0x1b, 0x21, 0x64, 0x05,
0x4b, 0x8d, 0x9d, 0x3b, 0x84, 0xdc, 0x6a, 0xde, 0xcb, 0x3f, 0x86, 0x5d, 0x2e, 0x7d, 0x73, 0x28,
0x7e, 0x01, 0x33, 0xfe, 0x5a, 0x81, 0xf3, 0x43, 0xb2, 0x08, 0x3d, 0x00, 0x48, 0x66, 0xcc, 0x10,
0xa7, 0x0d, 0x51, 0x38, 0x70, 0xcf, 0x9d, 0x93, 0x4f, 0x54, 0x09, 0x34, 0x25, 0x11, 0x31, 0xa8,
0xf9, 0x94, 0x51, 0xff, 0x98, 0xb6, 0xdf, 0xf5, 0x7c, 0xe5, 0xba, 0x6f, 0x8f, 0xe0, 0xba, 0x81,
0xec, 0x4d, 0xee, 0x5e, 0x38, 0x11, 0x8c, 0xd3, 0x5a, 0xd0, 0x83, 0xc4, 0x85, 0xe1, 0xbb, 0xeb,
0xb5, 0x52, 0x27, 0xca, 0x3e, 0x19, 0x9f, 0xe2, 0xcc, 0x7f, 0x68, 0x70, 0x21, 0x63, 0xe4, 0x7b,
0xb4, 0xd3, 0x75, 0x08, 0xa7, 0x67, 0xd0, 0x8c, 0xee, 0x67, 0x9a, 0xd1, 0xdb, 0x23, 0x78, 0x32,
0x32, 0xb2, 0xf0, 0x16, 0xf3, 0x77, 0x0d, 0x2e, 0x0e, 0xe5, 0x38, 0x83, 0xe2, 0xfa, 0x7e, 0xb6,
0xb8, 0xae, 0x7d, 0x8e, 0x73, 0x15, 0xdf, 0x1c, 0x2e, 0x16, 0xfa, 0xe1, 0xff, 0x72, 0x7a, 0x18,
0xbf, 0xd7, 0x60, 0x26, 0xa2, 0x14, 0xeb, 0x52, 0x89, 0x9d, 0x79, 0x15, 0x40, 0xfd, 0x59, 0x12,
0xdd, 0xee, 0xf5, 0xc4, 0xee, 0x1b, 0x31, 0x06, 0xa7, 0xa8, 0xd0, 0x4d, 0x40, 0x91, 0x85, 0xbb,
0x8e, 0x5c, 0x0a, 0xc4, 0xea, 0xa9, 0x4b, 0xde, 0x25, 0xc5, 0x8b, 0xf0, 0x00, 0x05, 0x1e, 0xc2,
0x65, 0xfc, 0x59, 0x4b, 0xe6, 0xb6, 0x04, 0xbf, 0xa8, 0x9e, 0x97, 0xc6, 0x15, 0x7a, 0x3e, 0x3d,
0x77, 0x24, 0xe5, 0x0b, 0x3b, 0x77, 0xa4, 0x75, 0x05, 0x25, 0xf1, 0x48, 0xcf, 0x9d, 0x42, 0x96,
0x42, 0xd9, 0x2d, 0xef, 0x56, 0xea, 0x2f, 0xb2, 0xda, 0xea, 0xab, 0xe5, 0xcc, 0x11, 0x69, 0x3a,
0x74, 0xc7, 0xbf, 0x02, 0x53, 0xae, 0xd7, 0x0e, 0xf7, 0xe1, 0xdc, 0x76, 0xb1, 0xad, 0xe0, 0x38,
0xa6, 0x18, 0xf8, 0x23, 0xa7, 0xfa, 0xc5, 0xfc, 0x91, 0x23, 0x37, 0x22, 0xc7, 0x11, 0x04, 0xd1,
0xf5, 0x21, 0xd9, 0x88, 0x14, 0x1c, 0xc7, 0x14, 0xe8, 0x4e, 0x32, 0x5f, 0x26, 0x64, 0x4c, 0xbe,
0x56, 0x66, 0x44, 0x17, 0x0f, 0x14, 0xd3, 0x7c, 0xfc, 0xb4, 0x3e, 0xf6, 0xe4, 0x69, 0x7d, 0xec,
0xd3, 0xa7, 0xf5, 0xb1, 0x8f, 0xfb, 0x75, 0xed, 0x71, 0xbf, 0xae, 0x3d, 0xe9, 0xd7, 0xb5, 0x4f,
0xfb, 0x75, 0xed, 0xb3, 0x7e, 0x5d, 0xfb, 0xe5, 0xbf, 0xea, 0x63, 0x3f, 0x78, 0xf9, 0xb4, 0x7f,
0x94, 0xff, 0x1b, 0x00, 0x00, 0xff, 0xff, 0xba, 0x87, 0x1a, 0xe0, 0x70, 0x1e, 0x00, 0x00,
// 2087 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x3a, 0xcb, 0x73, 0x1c, 0x47,
0xf9, 0x9a, 0x9d, 0xd5, 0xeb, 0x5b, 0xbd, 0xdc, 0xfe, 0xd9, 0xbf, 0xb5, 0x08, 0xbb, 0xf2, 0x84,
0x02, 0x39, 0x71, 0x76, 0x63, 0x39, 0x95, 0x04, 0xcc, 0x01, 0xad, 0x24, 0x1b, 0x19, 0x5b, 0x96,
0x5b, 0x89, 0x0b, 0x43, 0x30, 0xb4, 0x66, 0x5b, 0xd2, 0xa0, 0xd9, 0x99, 0xcd, 0x74, 0xcf, 0x3a,
0xba, 0x50, 0x29, 0xfe, 0x00, 0x17, 0xff, 0x00, 0x95, 0x1b, 0x55, 0x5c, 0x80, 0xff, 0x00, 0xaa,
0xa0, 0x0a, 0x17, 0x5c, 0x5c, 0x15, 0x0e, 0x39, 0x2d, 0xf1, 0x52, 0x9c, 0x39, 0x70, 0xf3, 0x89,
0xea, 0x9e, 0x9e, 0xe7, 0xee, 0x48, 0xa3, 0x10, 0x54, 0xa1, 0x8a, 0x9b, 0xe6, 0x7b, 0xf7, 0xf7,
0xea, 0xef, 0xeb, 0x15, 0x5c, 0x3d, 0x7c, 0x9b, 0x35, 0x2c, 0xb7, 0x49, 0xba, 0x56, 0xd3, 0xa3,
0xcc, 0xf5, 0x3d, 0x93, 0x36, 0x7b, 0xd7, 0x88, 0xdd, 0x3d, 0x20, 0xd7, 0x9b, 0xfb, 0xd4, 0xa1,
0x1e, 0xe1, 0xb4, 0xdd, 0xe8, 0x7a, 0x2e, 0x77, 0xd1, 0x4b, 0x01, 0x75, 0x83, 0x74, 0xad, 0x46,
0x48, 0xdd, 0x08, 0xa9, 0x17, 0x5f, 0xdb, 0xb7, 0xf8, 0x81, 0xbf, 0xdb, 0x30, 0xdd, 0x4e, 0x73,
0xdf, 0xdd, 0x77, 0x9b, 0x92, 0x69, 0xd7, 0xdf, 0x93, 0x5f, 0xf2, 0x43, 0xfe, 0x15, 0x08, 0x5b,
0x34, 0x12, 0xaa, 0x4d, 0xd7, 0x13, 0x6a, 0xb3, 0x0a, 0x17, 0xdf, 0x88, 0x69, 0x3a, 0xc4, 0x3c,
0xb0, 0x1c, 0xea, 0x1d, 0x35, 0xbb, 0x87, 0xfb, 0x69, 0x7b, 0x4f, 0xc3, 0xc5, 0x9a, 0x1d, 0xca,
0xc9, 0x28, 0x5d, 0xcd, 0x3c, 0x2e, 0xcf, 0x77, 0xb8, 0xd5, 0x19, 0x56, 0xf3, 0xe6, 0x49, 0x0c,
0xcc, 0x3c, 0xa0, 0x1d, 0x92, 0xe5, 0x33, 0x3e, 0xd2, 0xe1, 0xc2, 0xaa, 0x6d, 0xbb, 0xa6, 0x80,
0xad, 0xd3, 0x9e, 0x65, 0xd2, 0x1d, 0x4e, 0xb8, 0xcf, 0xd0, 0x57, 0x61, 0xa2, 0xed, 0x59, 0x3d,
0xea, 0x55, 0xb5, 0x25, 0x6d, 0x79, 0xba, 0x35, 0xf7, 0xb4, 0x5f, 0x1f, 0x1b, 0xf4, 0xeb, 0x13,
0xeb, 0x12, 0x8a, 0x15, 0x16, 0x2d, 0x41, 0xb9, 0xeb, 0xba, 0x76, 0xb5, 0x24, 0xa9, 0x66, 0x14,
0x55, 0x79, 0xdb, 0x75, 0x6d, 0x2c, 0x31, 0x52, 0x92, 0x94, 0x5c, 0xd5, 0x33, 0x92, 0x24, 0x14,
0x2b, 0x2c, 0x32, 0x01, 0x4c, 0xd7, 0x69, 0x5b, 0xdc, 0x72, 0x1d, 0x56, 0x2d, 0x2f, 0xe9, 0xcb,
0x95, 0x95, 0x66, 0x23, 0x0e, 0x73, 0x74, 0xb0, 0x46, 0xf7, 0x70, 0x5f, 0x00, 0x58, 0x43, 0xf8,
0xaf, 0xd1, 0xbb, 0xd6, 0x58, 0x0b, 0xf9, 0x5a, 0x48, 0x09, 0x87, 0x08, 0xc4, 0x70, 0x42, 0x2c,
0xfa, 0x0e, 0x94, 0xdb, 0x84, 0x93, 0xea, 0xf8, 0x92, 0xb6, 0x5c, 0x59, 0x79, 0x2d, 0x57, 0xbc,
0xf2, 0x5b, 0x03, 0x93, 0xc7, 0x1b, 0x1f, 0x70, 0xea, 0x30, 0x21, 0x7c, 0x4a, 0x9c, 0x6c, 0x9d,
0x70, 0x82, 0xa5, 0x10, 0xb4, 0x0b, 0x15, 0x87, 0xf2, 0xc7, 0xae, 0x77, 0x28, 0x80, 0xd5, 0x09,
0x29, 0x33, 0x69, 0xf2, 0x70, 0x66, 0x36, 0xb6, 0x14, 0x83, 0x3c, 0xb3, 0x60, 0x6b, 0xcd, 0x0f,
0xfa, 0xf5, 0xca, 0x56, 0x2c, 0x07, 0x27, 0x85, 0x1a, 0x7f, 0xd6, 0x60, 0x41, 0x45, 0xc8, 0x72,
0x1d, 0x4c, 0x99, 0x6f, 0x73, 0xf4, 0x43, 0x98, 0x0c, 0x9c, 0xc6, 0x64, 0x74, 0x2a, 0x2b, 0x6f,
0x1c, 0xaf, 0x34, 0xd0, 0x96, 0x15, 0xd3, 0x9a, 0x57, 0xce, 0x9a, 0x0c, 0xf0, 0x0c, 0x87, 0x52,
0xd1, 0x03, 0x98, 0x71, 0xdc, 0x36, 0xdd, 0xa1, 0x36, 0x35, 0xb9, 0xeb, 0xc9, 0xc8, 0x55, 0x56,
0x96, 0x92, 0x5a, 0x44, 0x9d, 0x08, 0xdf, 0x6f, 0x25, 0xe8, 0x5a, 0x0b, 0x83, 0x7e, 0x7d, 0x26,
0x09, 0xc1, 0x29, 0x39, 0xc6, 0xa7, 0x3a, 0x54, 0x5a, 0x84, 0x59, 0x66, 0xa0, 0x11, 0xfd, 0x04,
0x80, 0x70, 0xee, 0x59, 0xbb, 0x3e, 0x97, 0x67, 0x11, 0x31, 0xff, 0xfa, 0xf1, 0x67, 0x49, 0xb0,
0x37, 0x56, 0x23, 0xde, 0x0d, 0x87, 0x7b, 0x47, 0xad, 0x97, 0xc3, 0xe8, 0xc7, 0x88, 0x9f, 0xfe,
0xb5, 0x3e, 0x7b, 0xdf, 0x27, 0xb6, 0xb5, 0x67, 0xd1, 0xf6, 0x16, 0xe9, 0x50, 0x9c, 0xd0, 0x88,
0x7a, 0x30, 0x65, 0x92, 0x2e, 0x31, 0x2d, 0x7e, 0x54, 0x2d, 0x49, 0xed, 0x6f, 0x15, 0xd7, 0xbe,
0xa6, 0x38, 0x03, 0xdd, 0x97, 0x95, 0xee, 0xa9, 0x10, 0x3c, 0xac, 0x39, 0xd2, 0xb5, 0x68, 0xc3,
0x7c, 0xc6, 0x76, 0xb4, 0x00, 0xfa, 0x21, 0x3d, 0x0a, 0xaa, 0x0d, 0x8b, 0x3f, 0xd1, 0x1a, 0x8c,
0xf7, 0x88, 0xed, 0x53, 0x59, 0x5b, 0xe9, 0x64, 0xcd, 0x8f, 0x71, 0x28, 0x15, 0x07, 0xbc, 0xdf,
0x28, 0xbd, 0xad, 0x2d, 0x1e, 0xc2, 0x6c, 0xca, 0xd6, 0x11, 0xba, 0xd6, 0xd3, 0xba, 0x1a, 0xc7,
0xd5, 0x5d, 0xac, 0xfc, 0xbe, 0x4f, 0x1c, 0x6e, 0xf1, 0xa3, 0x84, 0x32, 0xe3, 0x16, 0x9c, 0x5b,
0xdb, 0xb8, 0xa3, 0x7a, 0x89, 0x8a, 0x3b, 0x5a, 0x01, 0xa0, 0x1f, 0x74, 0x3d, 0xca, 0x44, 0x1d,
0xa9, 0x8e, 0x12, 0x95, 0xea, 0x46, 0x84, 0xc1, 0x09, 0x2a, 0xa3, 0x07, 0xaa, 0x43, 0x88, 0x1e,
0xe3, 0x90, 0x0e, 0x55, 0x7c, 0x51, 0x8f, 0x91, 0x3e, 0x95, 0x18, 0x74, 0x1b, 0xc6, 0x77, 0x45,
0x64, 0x94, 0xf9, 0x57, 0x0a, 0x07, 0xb1, 0x35, 0x3d, 0xe8, 0xd7, 0xc7, 0x25, 0x00, 0x07, 0x22,
0x8c, 0x27, 0x25, 0xf8, 0x72, 0xb6, 0x60, 0xd6, 0x5c, 0x67, 0xcf, 0xda, 0xf7, 0x3d, 0xf9, 0x81,
0xbe, 0x05, 0x13, 0x81, 0x48, 0x65, 0xd1, 0x72, 0xd8, 0xd1, 0x76, 0x24, 0xf4, 0x45, 0xbf, 0x7e,
0x31, 0xcb, 0x1a, 0x60, 0xb0, 0xe2, 0x43, 0xcb, 0x30, 0xe5, 0xd1, 0xf7, 0x7d, 0xca, 0x38, 0x93,
0x79, 0x37, 0xdd, 0x9a, 0x11, 0xa9, 0x83, 0x15, 0x0c, 0x47, 0x58, 0xf4, 0xa1, 0x06, 0xe7, 0x83,
0xaa, 0x4c, 0xd9, 0xa0, 0x2a, 0xf2, 0x5a, 0x91, 0x9c, 0x48, 0x31, 0xb6, 0xbe, 0xa4, 0x8c, 0x3d,
0x3f, 0x02, 0x89, 0x47, 0xa9, 0x32, 0xfe, 0xae, 0xc1, 0xc5, 0xd1, 0x1d, 0x04, 0xed, 0xc1, 0xa4,
0x27, 0xff, 0x0a, 0x8b, 0xf7, 0x46, 0x11, 0x83, 0xd4, 0x31, 0xf3, 0xfb, 0x51, 0xf0, 0xcd, 0x70,
0x28, 0x1c, 0x99, 0x30, 0x61, 0x4a, 0x9b, 0x54, 0x95, 0xde, 0x38, 0x5d, 0xbf, 0x4b, 0x7b, 0x20,
0xba, 0x80, 0x02, 0x30, 0x56, 0xa2, 0x8d, 0x5f, 0x6a, 0x30, 0x9f, 0xa9, 0x22, 0x54, 0x03, 0xdd,
0x72, 0xb8, 0x4c, 0x2b, 0x3d, 0x88, 0xd1, 0xa6, 0xc3, 0x1f, 0x88, 0x64, 0xc7, 0x02, 0x81, 0x2e,
0x43, 0x79, 0x57, 0x5c, 0x7f, 0x22, 0x1c, 0x53, 0xad, 0xd9, 0x41, 0xbf, 0x3e, 0xdd, 0x72, 0x5d,
0x3b, 0xa0, 0x90, 0x28, 0xf4, 0x35, 0x98, 0x60, 0xdc, 0xb3, 0x9c, 0xfd, 0x6a, 0x59, 0x66, 0x8b,
0xec, 0xf7, 0x3b, 0x12, 0x12, 0x90, 0x29, 0x34, 0x7a, 0x05, 0x26, 0x7b, 0xd4, 0x93, 0x15, 0x32,
0x2e, 0x29, 0x65, 0x37, 0x7d, 0x10, 0x80, 0x02, 0xd2, 0x90, 0xc0, 0xf8, 0x75, 0x09, 0x2a, 0x2a,
0x80, 0x36, 0xb1, 0x3a, 0xe8, 0x61, 0x22, 0xa1, 0x82, 0x48, 0xbc, 0x7a, 0x8a, 0x48, 0xb4, 0x16,
0xc2, 0xe6, 0x35, 0x22, 0x03, 0x29, 0x54, 0x4c, 0xd7, 0x61, 0xdc, 0x23, 0x96, 0xa3, 0xd2, 0x35,
0xdd, 0x20, 0x8e, 0x4b, 0x3c, 0xc5, 0xd6, 0x3a, 0xaf, 0x14, 0x54, 0x62, 0x18, 0xc3, 0x49, 0xb9,
0xe8, 0x51, 0x14, 0x62, 0x5d, 0x6a, 0x78, 0xb3, 0x90, 0x06, 0x71, 0xf8, 0x62, 0xd1, 0xfd, 0xa3,
0x06, 0xd5, 0x3c, 0xa6, 0x54, 0x3d, 0x6a, 0x9f, 0xa9, 0x1e, 0x4b, 0x67, 0x57, 0x8f, 0xbf, 0xd3,
0x12, 0xb1, 0x67, 0x0c, 0xfd, 0x08, 0xa6, 0xc4, 0x20, 0x24, 0xe7, 0x9a, 0x60, 0x1c, 0x78, 0xbd,
0xd8, 0xd8, 0x74, 0x6f, 0xf7, 0xc7, 0xd4, 0xe4, 0x77, 0x29, 0x27, 0x71, 0x33, 0x8e, 0x61, 0x38,
0x92, 0x8a, 0xee, 0x41, 0x99, 0x75, 0xa9, 0x79, 0x9a, 0x8b, 0x48, 0x9a, 0xb6, 0xd3, 0xa5, 0x66,
0xdc, 0xaf, 0xc5, 0x17, 0x96, 0x82, 0x8c, 0x9f, 0x27, 0x83, 0xc1, 0x58, 0x3a, 0x18, 0x79, 0x2e,
0xd6, 0xce, 0xce, 0xc5, 0xbf, 0x8d, 0x5a, 0x81, 0xb4, 0xef, 0x8e, 0xc5, 0x38, 0x7a, 0x6f, 0xc8,
0xcd, 0x8d, 0x62, 0x6e, 0x16, 0xdc, 0xd2, 0xc9, 0x51, 0x95, 0x85, 0x90, 0x84, 0x8b, 0xb7, 0x60,
0xdc, 0xe2, 0xb4, 0x13, 0xd6, 0xd7, 0x95, 0xc2, 0x3e, 0x6e, 0xcd, 0x2a, 0xa9, 0xe3, 0x9b, 0x82,
0x1f, 0x07, 0x62, 0x8c, 0x67, 0xe9, 0x13, 0x08, 0xdf, 0xa3, 0x1f, 0xc0, 0x34, 0x53, 0x37, 0x72,
0xd8, 0x25, 0xae, 0x16, 0xd1, 0x13, 0x8d, 0x77, 0xe7, 0x94, 0xaa, 0xe9, 0x10, 0xc2, 0x70, 0x2c,
0x31, 0x51, 0xc1, 0xa5, 0x53, 0x55, 0x70, 0x26, 0xfe, 0xb9, 0x15, 0xec, 0xc1, 0xa8, 0x00, 0xa2,
0xef, 0xc3, 0x84, 0xdb, 0x25, 0xef, 0xfb, 0x54, 0x45, 0xe5, 0x84, 0x09, 0xee, 0x9e, 0xa4, 0x1d,
0x95, 0x26, 0x20, 0x74, 0x06, 0x68, 0xac, 0x44, 0x1a, 0x4f, 0x34, 0x58, 0xc8, 0x36, 0xb3, 0x53,
0x74, 0x8b, 0x6d, 0x98, 0xeb, 0x10, 0x6e, 0x1e, 0x44, 0x17, 0x8a, 0xda, 0x93, 0x96, 0x07, 0xfd,
0xfa, 0xdc, 0xdd, 0x14, 0xe6, 0x45, 0xbf, 0x8e, 0x6e, 0xfa, 0xb6, 0x7d, 0x94, 0x9e, 0x19, 0x33,
0xfc, 0xc6, 0x3f, 0x75, 0x98, 0x4d, 0xf5, 0xee, 0x02, 0xd3, 0xd1, 0x2a, 0xcc, 0xb7, 0x63, 0x67,
0x0b, 0x84, 0x32, 0xe3, 0xff, 0x15, 0x71, 0x32, 0x53, 0x24, 0x5f, 0x96, 0x3e, 0x9d, 0x3a, 0xfa,
0xe7, 0x9e, 0x3a, 0x0f, 0x60, 0x8e, 0x44, 0xb7, 0xf5, 0x5d, 0xb7, 0x4d, 0xd5, 0x5d, 0xd9, 0x50,
0x5c, 0x73, 0xab, 0x29, 0xec, 0x8b, 0x7e, 0xfd, 0xff, 0xb2, 0x77, 0xbc, 0x80, 0xe3, 0x8c, 0x14,
0xf4, 0x32, 0x8c, 0x9b, 0xae, 0xef, 0x70, 0x79, 0xa1, 0xea, 0x71, 0xa9, 0xac, 0x09, 0x20, 0x0e,
0x70, 0xe8, 0x1a, 0x54, 0x48, 0xbb, 0x63, 0x39, 0xab, 0xa6, 0x49, 0x19, 0x93, 0x6b, 0xdc, 0x54,
0x70, 0x4b, 0xaf, 0xc6, 0x60, 0x9c, 0xa4, 0x41, 0x0e, 0xcc, 0xed, 0x59, 0x1e, 0xe3, 0xab, 0x3d,
0x62, 0xd9, 0x64, 0xd7, 0xa6, 0xd5, 0xc9, 0xe2, 0xd7, 0xe2, 0x8e, 0xbf, 0x1b, 0xde, 0xbb, 0x17,
0xc3, 0xf3, 0xdd, 0x4c, 0x49, 0xc3, 0x19, 0xe9, 0xc6, 0x3f, 0xb4, 0x70, 0x26, 0xcd, 0x99, 0x9d,
0xd0, 0x15, 0x31, 0x89, 0x49, 0x94, 0x4a, 0x84, 0xc4, 0x30, 0x25, 0xc1, 0x38, 0xc4, 0x27, 0x56,
0xfb, 0x52, 0xa1, 0xd5, 0x5e, 0x2f, 0xb0, 0xda, 0x97, 0x8f, 0x5d, 0xed, 0x33, 0x1e, 0x1e, 0x3f,
0xd9, 0xc3, 0xc6, 0x7b, 0x30, 0x97, 0xd9, 0x21, 0x6e, 0x83, 0x6e, 0x52, 0x5b, 0x15, 0xf9, 0x09,
0x5b, 0xf6, 0xd0, 0x06, 0xd2, 0x9a, 0x1c, 0xf4, 0xeb, 0xfa, 0xda, 0xc6, 0x1d, 0x2c, 0x84, 0x18,
0x1f, 0x97, 0xc2, 0xb2, 0x8e, 0x83, 0xf1, 0xbf, 0x42, 0xfa, 0x37, 0x0b, 0xc9, 0xf8, 0x95, 0x06,
0xe7, 0x86, 0xde, 0x37, 0xd0, 0x0d, 0x98, 0xb5, 0x1c, 0x4e, 0xbd, 0x3d, 0x62, 0xd2, 0xad, 0xd8,
0xbf, 0x17, 0x94, 0x88, 0xd9, 0xcd, 0x24, 0x12, 0xa7, 0x69, 0xd1, 0x25, 0xd0, 0xad, 0x6e, 0xb8,
0x23, 0xc9, 0x18, 0x6e, 0x6e, 0x33, 0x2c, 0x60, 0x22, 0x18, 0x07, 0xc4, 0x6b, 0x3f, 0x26, 0x1e,
0x5d, 0x6d, 0xb7, 0xc5, 0xd6, 0xa8, 0x32, 0x35, 0x0a, 0xc6, 0xb7, 0xd3, 0x68, 0x9c, 0xa5, 0x37,
0x7e, 0xa1, 0xc1, 0xa5, 0xdc, 0xfb, 0xa0, 0xf0, 0x13, 0x18, 0x01, 0xe8, 0x12, 0x8f, 0x74, 0x28,
0xa7, 0x1e, 0x1b, 0x31, 0x23, 0x15, 0x78, 0x59, 0x8a, 0xc6, 0xaf, 0xed, 0x48, 0x10, 0x4e, 0x08,
0x35, 0x3e, 0x2a, 0xc1, 0x2c, 0x56, 0x99, 0x11, 0x0c, 0xfc, 0xff, 0xf9, 0xa1, 0xef, 0x7e, 0x6a,
0xe8, 0x3b, 0xa1, 0xe0, 0x52, 0xc6, 0xe5, 0x8d, 0x7d, 0xe8, 0xa1, 0x58, 0x85, 0x08, 0xf7, 0x59,
0xb1, 0xf5, 0x35, 0x2d, 0x54, 0x32, 0xc6, 0x41, 0x08, 0xbe, 0xb1, 0x12, 0x68, 0x0c, 0x34, 0xa8,
0xa5, 0xe8, 0xc5, 0x7d, 0xed, 0x77, 0xa8, 0x87, 0xe9, 0x1e, 0xf5, 0xa8, 0x63, 0x52, 0x74, 0x15,
0xa6, 0x48, 0xd7, 0xba, 0xe5, 0xb9, 0x7e, 0x57, 0x45, 0x34, 0x1a, 0xc8, 0x56, 0xb7, 0x37, 0x25,
0x1c, 0x47, 0x14, 0x82, 0x3a, 0xb4, 0x48, 0xe5, 0x55, 0x62, 0x49, 0x0a, 0xe0, 0x38, 0xa2, 0x88,
0x7a, 0x47, 0x39, 0xb7, 0x77, 0xb4, 0x40, 0xf7, 0xad, 0xb6, 0xda, 0xec, 0x5e, 0x57, 0x04, 0xfa,
0xbb, 0x9b, 0xeb, 0x2f, 0xfa, 0xf5, 0xcb, 0x79, 0xcf, 0xb7, 0xfc, 0xa8, 0x4b, 0x59, 0xe3, 0xdd,
0xcd, 0x75, 0x2c, 0x98, 0x8d, 0xdf, 0x6b, 0x70, 0x2e, 0x75, 0xc8, 0x33, 0x18, 0x4c, 0xb7, 0xd3,
0x83, 0xe9, 0xab, 0xa7, 0x08, 0x59, 0xce, 0x68, 0x6a, 0x65, 0x0e, 0x21, 0x67, 0xd3, 0x77, 0xb2,
0x4f, 0x9a, 0x57, 0x0a, 0xef, 0x7f, 0xf9, 0xef, 0x98, 0xc6, 0x9f, 0x4a, 0x70, 0x7e, 0x44, 0x16,
0xa1, 0x47, 0x00, 0x71, 0x83, 0x1b, 0xe1, 0xb4, 0x11, 0x0a, 0x87, 0x5e, 0x2b, 0xe6, 0xe4, 0x43,
0x63, 0x0c, 0x4d, 0x48, 0x44, 0x0c, 0x2a, 0x1e, 0x65, 0xd4, 0xeb, 0xd1, 0xf6, 0x4d, 0xd7, 0x53,
0xae, 0xfb, 0xe6, 0x29, 0x5c, 0x37, 0x94, 0xbd, 0xf1, 0x06, 0x8d, 0x63, 0xc1, 0x38, 0xa9, 0x05,
0x3d, 0x8a, 0x5d, 0x18, 0xbc, 0x9e, 0x5f, 0x2f, 0x74, 0xa2, 0xf4, 0xc3, 0xff, 0x31, 0xce, 0xfc,
0x8b, 0x06, 0x17, 0x52, 0x46, 0xbe, 0x43, 0x3b, 0x5d, 0x9b, 0x70, 0x7a, 0x06, 0xcd, 0xe8, 0x61,
0xaa, 0x19, 0xbd, 0x75, 0x0a, 0x4f, 0x86, 0x46, 0xe6, 0xee, 0xa2, 0x1f, 0x6b, 0x70, 0x69, 0x24,
0xc7, 0x19, 0x14, 0xd7, 0x77, 0xd3, 0xc5, 0x75, 0xfd, 0x33, 0x9c, 0x2b, 0x7f, 0xff, 0xbb, 0x94,
0xeb, 0x87, 0xff, 0xca, 0xdb, 0xc3, 0xf8, 0x8d, 0x06, 0x33, 0x21, 0xa5, 0x18, 0x42, 0x0b, 0x0c,
0x6c, 0x2b, 0x00, 0xea, 0x27, 0xaf, 0xf0, 0x8d, 0x46, 0x8f, 0xed, 0xbe, 0x15, 0x61, 0x70, 0x82,
0x0a, 0xdd, 0x06, 0x14, 0x5a, 0xb8, 0x63, 0xcb, 0xa1, 0x40, 0xcc, 0x3d, 0xba, 0xe4, 0x5d, 0x54,
0xbc, 0x08, 0x0f, 0x51, 0xe0, 0x11, 0x5c, 0xc6, 0x1f, 0xb4, 0xf8, 0xde, 0x96, 0xe0, 0x2f, 0xaa,
0xe7, 0xa5, 0x71, 0xb9, 0x9e, 0x4f, 0xde, 0x3b, 0x92, 0xf2, 0x0b, 0x7b, 0xef, 0x48, 0xeb, 0x72,
0x4a, 0xe2, 0x89, 0x9e, 0x39, 0x85, 0x2c, 0x85, 0xa2, 0x53, 0xde, 0x9d, 0xc4, 0x0f, 0x9d, 0x95,
0x95, 0x57, 0x8a, 0x99, 0x23, 0xd2, 0x74, 0xe4, 0xe6, 0x74, 0x15, 0xa6, 0x1c, 0xb7, 0x1d, 0xcc,
0xc3, 0x99, 0xe9, 0x62, 0x4b, 0xc1, 0x71, 0x44, 0x31, 0xf4, 0x73, 0x5c, 0xf9, 0xf3, 0xf9, 0x39,
0x4e, 0x4e, 0x44, 0xb6, 0x2d, 0x08, 0xc2, 0xa5, 0x2c, 0x9e, 0x88, 0x14, 0x1c, 0x47, 0x14, 0xe8,
0x5e, 0x7c, 0xbf, 0x4c, 0xc8, 0x98, 0x7c, 0xa5, 0xc8, 0x15, 0x9d, 0x7f, 0xa1, 0xb4, 0x5a, 0x4f,
0x9f, 0xd7, 0xc6, 0x9e, 0x3d, 0xaf, 0x8d, 0x7d, 0xf2, 0xbc, 0x36, 0xf6, 0xe1, 0xa0, 0xa6, 0x3d,
0x1d, 0xd4, 0xb4, 0x67, 0x83, 0x9a, 0xf6, 0xc9, 0xa0, 0xa6, 0x7d, 0x3a, 0xa8, 0x69, 0x3f, 0xfb,
0x5b, 0x6d, 0xec, 0x7b, 0x2f, 0x1d, 0xf7, 0x7f, 0x01, 0xff, 0x0a, 0x00, 0x00, 0xff, 0xff, 0xc2,
0x62, 0xe6, 0x4b, 0x36, 0x20, 0x00, 0x00,
}
func (m *AllocatedDeviceStatus) Marshal() (dAtA []byte, err error) {
@@ -1942,6 +1975,20 @@ func (m *DeviceRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
if len(m.FirstAvailable) > 0 {
for iNdEx := len(m.FirstAvailable) - 1; iNdEx >= 0; iNdEx-- {
{
size, err := m.FirstAvailable[iNdEx].MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintGenerated(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x3a
}
}
if m.AdminAccess != nil {
i--
if *m.AdminAccess {
@@ -2075,6 +2122,61 @@ func (m *DeviceSelector) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
func (m *DeviceSubRequest) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *DeviceSubRequest) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *DeviceSubRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
i = encodeVarintGenerated(dAtA, i, uint64(m.Count))
i--
dAtA[i] = 0x28
i -= len(m.AllocationMode)
copy(dAtA[i:], m.AllocationMode)
i = encodeVarintGenerated(dAtA, i, uint64(len(m.AllocationMode)))
i--
dAtA[i] = 0x22
if len(m.Selectors) > 0 {
for iNdEx := len(m.Selectors) - 1; iNdEx >= 0; iNdEx-- {
{
size, err := m.Selectors[iNdEx].MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintGenerated(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x1a
}
}
i -= len(m.DeviceClassName)
copy(dAtA[i:], m.DeviceClassName)
i = encodeVarintGenerated(dAtA, i, uint64(len(m.DeviceClassName)))
i--
dAtA[i] = 0x12
i -= len(m.Name)
copy(dAtA[i:], m.Name)
i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))
i--
dAtA[i] = 0xa
return len(dAtA) - i, nil
}
func (m *NetworkDeviceData) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -3059,6 +3161,12 @@ func (m *DeviceRequest) Size() (n int) {
if m.AdminAccess != nil {
n += 2
}
if len(m.FirstAvailable) > 0 {
for _, e := range m.FirstAvailable {
l = e.Size()
n += 1 + l + sovGenerated(uint64(l))
}
}
return n
}
@@ -3095,6 +3203,28 @@ func (m *DeviceSelector) Size() (n int) {
return n
}
func (m *DeviceSubRequest) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
l = len(m.Name)
n += 1 + l + sovGenerated(uint64(l))
l = len(m.DeviceClassName)
n += 1 + l + sovGenerated(uint64(l))
if len(m.Selectors) > 0 {
for _, e := range m.Selectors {
l = e.Size()
n += 1 + l + sovGenerated(uint64(l))
}
}
l = len(m.AllocationMode)
n += 1 + l + sovGenerated(uint64(l))
n += 1 + sovGenerated(uint64(m.Count))
return n
}
func (m *NetworkDeviceData) Size() (n int) {
if m == nil {
return 0
@@ -3585,6 +3715,11 @@ func (this *DeviceRequest) String() string {
repeatedStringForSelectors += strings.Replace(strings.Replace(f.String(), "DeviceSelector", "DeviceSelector", 1), `&`, ``, 1) + ","
}
repeatedStringForSelectors += "}"
repeatedStringForFirstAvailable := "[]DeviceSubRequest{"
for _, f := range this.FirstAvailable {
repeatedStringForFirstAvailable += strings.Replace(strings.Replace(f.String(), "DeviceSubRequest", "DeviceSubRequest", 1), `&`, ``, 1) + ","
}
repeatedStringForFirstAvailable += "}"
s := strings.Join([]string{`&DeviceRequest{`,
`Name:` + fmt.Sprintf("%v", this.Name) + `,`,
`DeviceClassName:` + fmt.Sprintf("%v", this.DeviceClassName) + `,`,
@@ -3592,6 +3727,7 @@ func (this *DeviceRequest) String() string {
`AllocationMode:` + fmt.Sprintf("%v", this.AllocationMode) + `,`,
`Count:` + fmt.Sprintf("%v", this.Count) + `,`,
`AdminAccess:` + valueToStringGenerated(this.AdminAccess) + `,`,
`FirstAvailable:` + repeatedStringForFirstAvailable + `,`,
`}`,
}, "")
return s
@@ -3620,6 +3756,25 @@ func (this *DeviceSelector) String() string {
}, "")
return s
}
func (this *DeviceSubRequest) String() string {
if this == nil {
return "nil"
}
repeatedStringForSelectors := "[]DeviceSelector{"
for _, f := range this.Selectors {
repeatedStringForSelectors += strings.Replace(strings.Replace(f.String(), "DeviceSelector", "DeviceSelector", 1), `&`, ``, 1) + ","
}
repeatedStringForSelectors += "}"
s := strings.Join([]string{`&DeviceSubRequest{`,
`Name:` + fmt.Sprintf("%v", this.Name) + `,`,
`DeviceClassName:` + fmt.Sprintf("%v", this.DeviceClassName) + `,`,
`Selectors:` + repeatedStringForSelectors + `,`,
`AllocationMode:` + fmt.Sprintf("%v", this.AllocationMode) + `,`,
`Count:` + fmt.Sprintf("%v", this.Count) + `,`,
`}`,
}, "")
return s
}
func (this *NetworkDeviceData) String() string {
if this == nil {
return "nil"
@@ -6223,6 +6378,40 @@ func (m *DeviceRequest) Unmarshal(dAtA []byte) error {
}
b := bool(v != 0)
m.AdminAccess = &b
case 7:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field FirstAvailable", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthGenerated
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthGenerated
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.FirstAvailable = append(m.FirstAvailable, DeviceSubRequest{})
if err := m.FirstAvailable[len(m.FirstAvailable)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
@@ -6529,6 +6718,205 @@ func (m *DeviceSelector) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *DeviceSubRequest) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: DeviceSubRequest: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: DeviceSubRequest: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthGenerated
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthGenerated
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Name = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field DeviceClassName", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthGenerated
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthGenerated
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.DeviceClassName = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 3:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Selectors", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthGenerated
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthGenerated
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Selectors = append(m.Selectors, DeviceSelector{})
if err := m.Selectors[len(m.Selectors)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
case 4:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field AllocationMode", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthGenerated
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthGenerated
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.AllocationMode = DeviceAllocationMode(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 5:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Count", wireType)
}
m.Count = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.Count |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
}
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
return ErrInvalidLengthGenerated
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *NetworkDeviceData) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0

View File

@@ -200,6 +200,10 @@ message DeviceAllocationConfiguration {
// Requests lists the names of requests where the configuration applies.
// If empty, its applies to all requests.
//
// References to subrequests must include the name of the main request
// and may include the subrequest using the format <main request>[/<subrequest>]. If just
// the main request is given, the configuration applies to all subrequests.
//
// +optional
// +listType=atomic
repeated string requests = 2;
@@ -286,6 +290,10 @@ message DeviceClaimConfiguration {
// Requests lists the names of requests where the configuration applies.
// If empty, it applies to all requests.
//
// References to subrequests must include the name of the main request
// and may include the subrequest using the format <main request>[/<subrequest>]. If just
// the main request is given, the configuration applies to all subrequests.
//
// +optional
// +listType=atomic
repeated string requests = 1;
@@ -370,6 +378,10 @@ message DeviceConstraint {
// constraint. If this is not specified, this constraint applies to all
// requests in this claim.
//
// References to subrequests must include the name of the main request
// and may include the subrequest using the format <main request>[/<subrequest>]. If just
// the main request is given, the constraint applies to all subrequests.
//
// +optional
// +listType=atomic
repeated string requests = 1;
@@ -395,11 +407,6 @@ message DeviceConstraint {
// DeviceRequest is a request for devices required for a claim.
// This is typically a request for a single resource like a device, but can
// also ask for several identical devices.
//
// A DeviceClassName is currently required. Clients must check that it is
// indeed set. It's absence indicates that something changed in a way that
// is not supported by the client yet, in which case it must refuse to
// handle the request.
message DeviceRequest {
// Name can be used to reference this request in a pod.spec.containers[].resources.claims
// entry and in a constraint of the claim.
@@ -413,7 +420,8 @@ message DeviceRequest {
// additional configuration and selectors to be inherited by this
// request.
//
// A class is required. Which classes are available depends on the cluster.
// A class is required if no subrequests are specified in the
// firstAvailable list. Which classes are available depends on the cluster.
//
// Administrators may use this to restrict which devices may get
// requested by only installing classes with selectors for permitted
@@ -421,7 +429,8 @@ message DeviceRequest {
// then administrators can create an empty DeviceClass for users
// to reference.
//
// +required
// +optional
// +oneOf=deviceRequestType
optional string deviceClassName = 2;
// Selectors define criteria which must be satisfied by a specific
@@ -475,13 +484,39 @@ message DeviceRequest {
// +optional
// +featureGate=DRAAdminAccess
optional bool adminAccess = 6;
// FirstAvailable contains subrequests, of which exactly one will be
// satisfied by the scheduler to satisfy this request. It tries to
// satisfy them in the order in which they are listed here. So if
// there are two entries in the list, the schduler will only check
// the second one if it determines that the first one can not be used.
//
// This field may only be set in the entries of DeviceClaim.Requests.
//
// DRA does not yet implement scoring, so the scheduler will
// select the first set of devices that satisfies all the
// requests in the claim. And if the requirements can
// be satisfied on more than one node, other scheduling features
// will determine which node is chosen. This means that the set of
// devices allocated to a claim might not be the optimal set
// available to the cluster. Scoring will be implemented later.
//
// +optional
// +oneOf=deviceRequestType
// +listType=atomic
// +featureGate=DRAPrioritizedList
repeated DeviceSubRequest firstAvailable = 7;
}
// DeviceRequestAllocationResult contains the allocation result for one request.
message DeviceRequestAllocationResult {
// Request is the name of the request in the claim which caused this
// device to be allocated. Multiple devices may have been allocated
// per request.
// device to be allocated. If it references a subrequest in the
// firstAvailable list on a DeviceRequest, this field must
// include both the name of the main request and the subrequest
// using the format <main request>/<subrequest>.
//
// Multiple devices may have been allocated per request.
//
// +required
optional string request = 1;
@@ -533,6 +568,78 @@ message DeviceSelector {
optional CELDeviceSelector cel = 1;
}
// DeviceSubRequest describes a request for device provided in the
// claim.spec.devices.requests[].firstAvailable array. Each
// is typically a request for a single resource like a device, but can
// also ask for several identical devices.
//
// DeviceSubRequest is similar to Request, but doesn't expose the AdminAccess
// or FirstAvailable fields, as those can only be set on the top-level request.
// AdminAccess is not supported for requests with a prioritized list, and
// recursive FirstAvailable fields are not supported.
message DeviceSubRequest {
// Name can be used to reference this subrequest in the list of constraints
// or the list of configurations for the claim. References must use the
// format <main request>/<subrequest>.
//
// Must be a DNS label.
//
// +required
optional string name = 1;
// DeviceClassName references a specific DeviceClass, which can define
// additional configuration and selectors to be inherited by this
// subrequest.
//
// A class is required. Which classes are available depends on the cluster.
//
// Administrators may use this to restrict which devices may get
// requested by only installing classes with selectors for permitted
// devices. If users are free to request anything without restrictions,
// then administrators can create an empty DeviceClass for users
// to reference.
//
// +required
optional string deviceClassName = 2;
// Selectors define criteria which must be satisfied by a specific
// device in order for that device to be considered for this
// request. All selectors must be satisfied for a device to be
// considered.
//
// +optional
// +listType=atomic
repeated DeviceSelector selectors = 3;
// AllocationMode and its related fields define how devices are allocated
// to satisfy this request. Supported values are:
//
// - ExactCount: This request is for a specific number of devices.
// This is the default. The exact number is provided in the
// count field.
//
// - All: This request is for all of the matching devices in a pool.
// Allocation will fail if some devices are already allocated,
// unless adminAccess is requested.
//
// If AlloctionMode is not specified, the default mode is ExactCount. If
// the mode is ExactCount and count is not specified, the default count is
// one. Any other requests must specify this field.
//
// More modes may get added in the future. Clients must refuse to handle
// requests with unknown modes.
//
// +optional
optional string allocationMode = 4;
// Count is used only when the count mode is "ExactCount". Must be greater than zero.
// If AllocationMode is ExactCount and this field is not specified, the default is one.
//
// +optional
// +oneOf=AllocationMode
optional int64 count = 5;
}
// NetworkDeviceData provides network-related details for the allocated device.
// This information may be filled by drivers or other components to configure
// or identify the device within a network context.

View File

@@ -83,7 +83,7 @@ func (Device) SwaggerDoc() map[string]string {
var map_DeviceAllocationConfiguration = map[string]string{
"": "DeviceAllocationConfiguration gets embedded in an AllocationResult.",
"source": "Source records whether the configuration comes from a class and thus is not something that a normal user would have been able to set or from a claim.",
"requests": "Requests lists the names of requests where the configuration applies. If empty, its applies to all requests.",
"requests": "Requests lists the names of requests where the configuration applies. If empty, its applies to all requests.\n\nReferences to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.",
}
func (DeviceAllocationConfiguration) SwaggerDoc() map[string]string {
@@ -125,7 +125,7 @@ func (DeviceClaim) SwaggerDoc() map[string]string {
var map_DeviceClaimConfiguration = map[string]string{
"": "DeviceClaimConfiguration is used for configuration parameters in DeviceClaim.",
"requests": "Requests lists the names of requests where the configuration applies. If empty, it applies to all requests.",
"requests": "Requests lists the names of requests where the configuration applies. If empty, it applies to all requests.\n\nReferences to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.",
}
func (DeviceClaimConfiguration) SwaggerDoc() map[string]string {
@@ -181,7 +181,7 @@ func (DeviceConfiguration) SwaggerDoc() map[string]string {
var map_DeviceConstraint = map[string]string{
"": "DeviceConstraint must have exactly one field set besides Requests.",
"requests": "Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim.",
"requests": "Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim.\n\nReferences to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the constraint applies to all subrequests.",
"matchAttribute": "MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices.\n\nFor example, if you specified \"dra.example.com/numa\" (a hypothetical example!), then only devices in the same NUMA node will be chosen. A device which does not have that attribute will not be chosen. All devices should use a value of the same type for this attribute because that is part of its specification, but if one device doesn't, then it also will not be chosen.\n\nMust include the domain qualifier.",
}
@@ -190,13 +190,14 @@ func (DeviceConstraint) SwaggerDoc() map[string]string {
}
var map_DeviceRequest = map[string]string{
"": "DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices.\n\nA DeviceClassName is currently required. Clients must check that it is indeed set. It's absence indicates that something changed in a way that is not supported by the client yet, in which case it must refuse to handle the request.",
"": "DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices.",
"name": "Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim.\n\nMust be a DNS label.",
"deviceClassName": "DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.\n\nA class is required. Which classes are available depends on the cluster.\n\nAdministrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.",
"deviceClassName": "DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.\n\nA class is required if no subrequests are specified in the firstAvailable list. Which classes are available depends on the cluster.\n\nAdministrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.",
"selectors": "Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this request. All selectors must be satisfied for a device to be considered.",
"allocationMode": "AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are:\n\n- ExactCount: This request is for a specific number of devices.\n This is the default. The exact number is provided in the\n count field.\n\n- All: This request is for all of the matching devices in a pool.\n At least one device must exist on the node for the allocation to succeed.\n Allocation will fail if some devices are already allocated,\n unless adminAccess is requested.\n\nIf AllocationMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other requests must specify this field.\n\nMore modes may get added in the future. Clients must refuse to handle requests with unknown modes.",
"count": "Count is used only when the count mode is \"ExactCount\". Must be greater than zero. If AllocationMode is ExactCount and this field is not specified, the default is one.",
"adminAccess": "AdminAccess indicates that this is a claim for administrative access to the device(s). Claims with AdminAccess are expected to be used for monitoring or other management services for a device. They ignore all ordinary claims to the device with respect to access modes and any resource allocations.\n\nThis is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled.",
"firstAvailable": "FirstAvailable contains subrequests, of which exactly one will be satisfied by the scheduler to satisfy this request. It tries to satisfy them in the order in which they are listed here. So if there are two entries in the list, the schduler will only check the second one if it determines that the first one can not be used.\n\nThis field may only be set in the entries of DeviceClaim.Requests.\n\nDRA does not yet implement scoring, so the scheduler will select the first set of devices that satisfies all the requests in the claim. And if the requirements can be satisfied on more than one node, other scheduling features will determine which node is chosen. This means that the set of devices allocated to a claim might not be the optimal set available to the cluster. Scoring will be implemented later.",
}
func (DeviceRequest) SwaggerDoc() map[string]string {
@@ -205,7 +206,7 @@ func (DeviceRequest) SwaggerDoc() map[string]string {
var map_DeviceRequestAllocationResult = map[string]string{
"": "DeviceRequestAllocationResult contains the allocation result for one request.",
"request": "Request is the name of the request in the claim which caused this device to be allocated. Multiple devices may have been allocated per request.",
"request": "Request is the name of the request in the claim which caused this device to be allocated. If it references a subrequest in the firstAvailable list on a DeviceRequest, this field must include both the name of the main request and the subrequest using the format <main request>/<subrequest>.\n\nMultiple devices may have been allocated per request.",
"driver": "Driver specifies the name of the DRA driver whose kubelet plugin should be invoked to process the allocation once the claim is needed on a node.\n\nMust be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.",
"pool": "This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`).\n\nMust not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.",
"device": "Device references one device instance via its name in the driver's resource pool. It must be a DNS label.",
@@ -225,6 +226,19 @@ func (DeviceSelector) SwaggerDoc() map[string]string {
return map_DeviceSelector
}
var map_DeviceSubRequest = map[string]string{
"": "DeviceSubRequest describes a request for device provided in the claim.spec.devices.requests[].firstAvailable array. Each is typically a request for a single resource like a device, but can also ask for several identical devices.\n\nDeviceSubRequest is similar to Request, but doesn't expose the AdminAccess or FirstAvailable fields, as those can only be set on the top-level request. AdminAccess is not supported for requests with a prioritized list, and recursive FirstAvailable fields are not supported.",
"name": "Name can be used to reference this subrequest in the list of constraints or the list of configurations for the claim. References must use the format <main request>/<subrequest>.\n\nMust be a DNS label.",
"deviceClassName": "DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest.\n\nA class is required. Which classes are available depends on the cluster.\n\nAdministrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.",
"selectors": "Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this request. All selectors must be satisfied for a device to be considered.",
"allocationMode": "AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are:\n\n- ExactCount: This request is for a specific number of devices.\n This is the default. The exact number is provided in the\n count field.\n\n- All: This request is for all of the matching devices in a pool.\n Allocation will fail if some devices are already allocated,\n unless adminAccess is requested.\n\nIf AlloctionMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other requests must specify this field.\n\nMore modes may get added in the future. Clients must refuse to handle requests with unknown modes.",
"count": "Count is used only when the count mode is \"ExactCount\". Must be greater than zero. If AllocationMode is ExactCount and this field is not specified, the default is one.",
}
func (DeviceSubRequest) SwaggerDoc() map[string]string {
return map_DeviceSubRequest
}
var map_NetworkDeviceData = map[string]string{
"": "NetworkDeviceData provides network-related details for the allocated device. This information may be filled by drivers or other components to configure or identify the device within a network context.",
"interfaceName": "InterfaceName specifies the name of the network interface associated with the allocated device. This might be the name of a physical or virtual network interface being configured in the pod.\n\nMust not be longer than 256 characters.",

View File

@@ -466,6 +466,13 @@ func (in *DeviceRequest) DeepCopyInto(out *DeviceRequest) {
*out = new(bool)
**out = **in
}
if in.FirstAvailable != nil {
in, out := &in.FirstAvailable, &out.FirstAvailable
*out = make([]DeviceSubRequest, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
return
}
@@ -521,6 +528,29 @@ func (in *DeviceSelector) DeepCopy() *DeviceSelector {
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *DeviceSubRequest) DeepCopyInto(out *DeviceSubRequest) {
*out = *in
if in.Selectors != nil {
in, out := &in.Selectors, &out.Selectors
*out = make([]DeviceSelector, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceSubRequest.
func (in *DeviceSubRequest) DeepCopy() *DeviceSubRequest {
if in == nil {
return nil
}
out := new(DeviceSubRequest)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *NetworkDeviceData) DeepCopyInto(out *NetworkDeviceData) {
*out = *in

View File

@@ -609,10 +609,38 @@ func (m *DeviceSelector) XXX_DiscardUnknown() {
var xxx_messageInfo_DeviceSelector proto.InternalMessageInfo
func (m *DeviceSubRequest) Reset() { *m = DeviceSubRequest{} }
func (*DeviceSubRequest) ProtoMessage() {}
func (*DeviceSubRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_ba331e3ec6484c27, []int{20}
}
func (m *DeviceSubRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *DeviceSubRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
if err != nil {
return nil, err
}
return b[:n], nil
}
func (m *DeviceSubRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_DeviceSubRequest.Merge(m, src)
}
func (m *DeviceSubRequest) XXX_Size() int {
return m.Size()
}
func (m *DeviceSubRequest) XXX_DiscardUnknown() {
xxx_messageInfo_DeviceSubRequest.DiscardUnknown(m)
}
var xxx_messageInfo_DeviceSubRequest proto.InternalMessageInfo
func (m *NetworkDeviceData) Reset() { *m = NetworkDeviceData{} }
func (*NetworkDeviceData) ProtoMessage() {}
func (*NetworkDeviceData) Descriptor() ([]byte, []int) {
return fileDescriptor_ba331e3ec6484c27, []int{20}
return fileDescriptor_ba331e3ec6484c27, []int{21}
}
func (m *NetworkDeviceData) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -640,7 +668,7 @@ var xxx_messageInfo_NetworkDeviceData proto.InternalMessageInfo
func (m *OpaqueDeviceConfiguration) Reset() { *m = OpaqueDeviceConfiguration{} }
func (*OpaqueDeviceConfiguration) ProtoMessage() {}
func (*OpaqueDeviceConfiguration) Descriptor() ([]byte, []int) {
return fileDescriptor_ba331e3ec6484c27, []int{21}
return fileDescriptor_ba331e3ec6484c27, []int{22}
}
func (m *OpaqueDeviceConfiguration) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -668,7 +696,7 @@ var xxx_messageInfo_OpaqueDeviceConfiguration proto.InternalMessageInfo
func (m *ResourceClaim) Reset() { *m = ResourceClaim{} }
func (*ResourceClaim) ProtoMessage() {}
func (*ResourceClaim) Descriptor() ([]byte, []int) {
return fileDescriptor_ba331e3ec6484c27, []int{22}
return fileDescriptor_ba331e3ec6484c27, []int{23}
}
func (m *ResourceClaim) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -696,7 +724,7 @@ var xxx_messageInfo_ResourceClaim proto.InternalMessageInfo
func (m *ResourceClaimConsumerReference) Reset() { *m = ResourceClaimConsumerReference{} }
func (*ResourceClaimConsumerReference) ProtoMessage() {}
func (*ResourceClaimConsumerReference) Descriptor() ([]byte, []int) {
return fileDescriptor_ba331e3ec6484c27, []int{23}
return fileDescriptor_ba331e3ec6484c27, []int{24}
}
func (m *ResourceClaimConsumerReference) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -724,7 +752,7 @@ var xxx_messageInfo_ResourceClaimConsumerReference proto.InternalMessageInfo
func (m *ResourceClaimList) Reset() { *m = ResourceClaimList{} }
func (*ResourceClaimList) ProtoMessage() {}
func (*ResourceClaimList) Descriptor() ([]byte, []int) {
return fileDescriptor_ba331e3ec6484c27, []int{24}
return fileDescriptor_ba331e3ec6484c27, []int{25}
}
func (m *ResourceClaimList) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -752,7 +780,7 @@ var xxx_messageInfo_ResourceClaimList proto.InternalMessageInfo
func (m *ResourceClaimSpec) Reset() { *m = ResourceClaimSpec{} }
func (*ResourceClaimSpec) ProtoMessage() {}
func (*ResourceClaimSpec) Descriptor() ([]byte, []int) {
return fileDescriptor_ba331e3ec6484c27, []int{25}
return fileDescriptor_ba331e3ec6484c27, []int{26}
}
func (m *ResourceClaimSpec) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -780,7 +808,7 @@ var xxx_messageInfo_ResourceClaimSpec proto.InternalMessageInfo
func (m *ResourceClaimStatus) Reset() { *m = ResourceClaimStatus{} }
func (*ResourceClaimStatus) ProtoMessage() {}
func (*ResourceClaimStatus) Descriptor() ([]byte, []int) {
return fileDescriptor_ba331e3ec6484c27, []int{26}
return fileDescriptor_ba331e3ec6484c27, []int{27}
}
func (m *ResourceClaimStatus) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -808,7 +836,7 @@ var xxx_messageInfo_ResourceClaimStatus proto.InternalMessageInfo
func (m *ResourceClaimTemplate) Reset() { *m = ResourceClaimTemplate{} }
func (*ResourceClaimTemplate) ProtoMessage() {}
func (*ResourceClaimTemplate) Descriptor() ([]byte, []int) {
return fileDescriptor_ba331e3ec6484c27, []int{27}
return fileDescriptor_ba331e3ec6484c27, []int{28}
}
func (m *ResourceClaimTemplate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -836,7 +864,7 @@ var xxx_messageInfo_ResourceClaimTemplate proto.InternalMessageInfo
func (m *ResourceClaimTemplateList) Reset() { *m = ResourceClaimTemplateList{} }
func (*ResourceClaimTemplateList) ProtoMessage() {}
func (*ResourceClaimTemplateList) Descriptor() ([]byte, []int) {
return fileDescriptor_ba331e3ec6484c27, []int{28}
return fileDescriptor_ba331e3ec6484c27, []int{29}
}
func (m *ResourceClaimTemplateList) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -864,7 +892,7 @@ var xxx_messageInfo_ResourceClaimTemplateList proto.InternalMessageInfo
func (m *ResourceClaimTemplateSpec) Reset() { *m = ResourceClaimTemplateSpec{} }
func (*ResourceClaimTemplateSpec) ProtoMessage() {}
func (*ResourceClaimTemplateSpec) Descriptor() ([]byte, []int) {
return fileDescriptor_ba331e3ec6484c27, []int{29}
return fileDescriptor_ba331e3ec6484c27, []int{30}
}
func (m *ResourceClaimTemplateSpec) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -892,7 +920,7 @@ var xxx_messageInfo_ResourceClaimTemplateSpec proto.InternalMessageInfo
func (m *ResourcePool) Reset() { *m = ResourcePool{} }
func (*ResourcePool) ProtoMessage() {}
func (*ResourcePool) Descriptor() ([]byte, []int) {
return fileDescriptor_ba331e3ec6484c27, []int{30}
return fileDescriptor_ba331e3ec6484c27, []int{31}
}
func (m *ResourcePool) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -920,7 +948,7 @@ var xxx_messageInfo_ResourcePool proto.InternalMessageInfo
func (m *ResourceSlice) Reset() { *m = ResourceSlice{} }
func (*ResourceSlice) ProtoMessage() {}
func (*ResourceSlice) Descriptor() ([]byte, []int) {
return fileDescriptor_ba331e3ec6484c27, []int{31}
return fileDescriptor_ba331e3ec6484c27, []int{32}
}
func (m *ResourceSlice) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -948,7 +976,7 @@ var xxx_messageInfo_ResourceSlice proto.InternalMessageInfo
func (m *ResourceSliceList) Reset() { *m = ResourceSliceList{} }
func (*ResourceSliceList) ProtoMessage() {}
func (*ResourceSliceList) Descriptor() ([]byte, []int) {
return fileDescriptor_ba331e3ec6484c27, []int{32}
return fileDescriptor_ba331e3ec6484c27, []int{33}
}
func (m *ResourceSliceList) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -976,7 +1004,7 @@ var xxx_messageInfo_ResourceSliceList proto.InternalMessageInfo
func (m *ResourceSliceSpec) Reset() { *m = ResourceSliceSpec{} }
func (*ResourceSliceSpec) ProtoMessage() {}
func (*ResourceSliceSpec) Descriptor() ([]byte, []int) {
return fileDescriptor_ba331e3ec6484c27, []int{33}
return fileDescriptor_ba331e3ec6484c27, []int{34}
}
func (m *ResourceSliceSpec) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1024,6 +1052,7 @@ func init() {
proto.RegisterType((*DeviceRequest)(nil), "k8s.io.api.resource.v1beta1.DeviceRequest")
proto.RegisterType((*DeviceRequestAllocationResult)(nil), "k8s.io.api.resource.v1beta1.DeviceRequestAllocationResult")
proto.RegisterType((*DeviceSelector)(nil), "k8s.io.api.resource.v1beta1.DeviceSelector")
proto.RegisterType((*DeviceSubRequest)(nil), "k8s.io.api.resource.v1beta1.DeviceSubRequest")
proto.RegisterType((*NetworkDeviceData)(nil), "k8s.io.api.resource.v1beta1.NetworkDeviceData")
proto.RegisterType((*OpaqueDeviceConfiguration)(nil), "k8s.io.api.resource.v1beta1.OpaqueDeviceConfiguration")
proto.RegisterType((*ResourceClaim)(nil), "k8s.io.api.resource.v1beta1.ResourceClaim")
@@ -1045,136 +1074,139 @@ func init() {
}
var fileDescriptor_ba331e3ec6484c27 = []byte{
// 2051 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x19, 0x4b, 0x8f, 0x1b, 0x49,
0x79, 0xda, 0xed, 0x79, 0x7d, 0x9e, 0x57, 0x2a, 0x64, 0x71, 0x26, 0xc2, 0x9e, 0x74, 0x24, 0xf0,
0x66, 0xb3, 0xed, 0x8d, 0x81, 0x28, 0xca, 0x5e, 0x70, 0xcf, 0xcc, 0x06, 0xb3, 0xc9, 0x64, 0xb6,
0x86, 0x0d, 0xd1, 0xb2, 0x41, 0xd4, 0xb4, 0x6b, 0x66, 0x9a, 0xb1, 0xbb, 0x9d, 0xee, 0xea, 0xc9,
0xce, 0x01, 0x81, 0xf6, 0xbc, 0x42, 0xdc, 0x11, 0x1c, 0x91, 0x90, 0x10, 0xe2, 0x17, 0x80, 0x04,
0x42, 0x44, 0x1c, 0x60, 0x05, 0x97, 0x15, 0x07, 0x43, 0xbc, 0x3f, 0x80, 0x7b, 0x4e, 0xa8, 0xaa,
0xab, 0x9f, 0x76, 0x9b, 0x1e, 0xb4, 0x8c, 0xc2, 0xcd, 0xfd, 0xbd, 0xeb, 0x7b, 0x57, 0x19, 0x5e,
0x3b, 0xbe, 0xed, 0xe9, 0x96, 0xd3, 0x24, 0x03, 0xab, 0xe9, 0x52, 0xcf, 0xf1, 0x5d, 0x93, 0x36,
0x4f, 0x6e, 0xee, 0x53, 0x46, 0x6e, 0x36, 0x0f, 0xa9, 0x4d, 0x5d, 0xc2, 0x68, 0x57, 0x1f, 0xb8,
0x0e, 0x73, 0xd0, 0x95, 0x80, 0x58, 0x27, 0x03, 0x4b, 0x0f, 0x89, 0x75, 0x49, 0xbc, 0xfe, 0xfa,
0xa1, 0xc5, 0x8e, 0xfc, 0x7d, 0xdd, 0x74, 0xfa, 0xcd, 0x43, 0xe7, 0xd0, 0x69, 0x0a, 0x9e, 0x7d,
0xff, 0x40, 0x7c, 0x89, 0x0f, 0xf1, 0x2b, 0x90, 0xb5, 0xae, 0x25, 0x14, 0x9b, 0x8e, 0xcb, 0x95,
0x66, 0xf5, 0xad, 0x7f, 0x25, 0xa6, 0xe9, 0x13, 0xf3, 0xc8, 0xb2, 0xa9, 0x7b, 0xda, 0x1c, 0x1c,
0x1f, 0xa6, 0xad, 0x3d, 0x0b, 0x97, 0xd7, 0xec, 0x53, 0x46, 0x26, 0xe9, 0x6a, 0xe6, 0x71, 0xb9,
0xbe, 0xcd, 0xac, 0xfe, 0xb8, 0x9a, 0x5b, 0xff, 0x89, 0xc1, 0x33, 0x8f, 0x68, 0x9f, 0x64, 0xf9,
0xb4, 0x9f, 0xa9, 0x70, 0xa9, 0xdd, 0xeb, 0x39, 0x26, 0x87, 0x6d, 0xd1, 0x13, 0xcb, 0xa4, 0x7b,
0x8c, 0x30, 0xdf, 0x43, 0x5f, 0x84, 0xb9, 0xae, 0x6b, 0x9d, 0x50, 0xb7, 0xaa, 0x6c, 0x28, 0x8d,
0x45, 0x63, 0xe5, 0xd9, 0xb0, 0x3e, 0x33, 0x1a, 0xd6, 0xe7, 0xb6, 0x04, 0x14, 0x4b, 0x2c, 0xda,
0x80, 0xf2, 0xc0, 0x71, 0x7a, 0xd5, 0x92, 0xa0, 0x5a, 0x92, 0x54, 0xe5, 0x5d, 0xc7, 0xe9, 0x61,
0x81, 0x11, 0x92, 0x84, 0xe4, 0xaa, 0x9a, 0x91, 0x24, 0xa0, 0x58, 0x62, 0x91, 0x09, 0x60, 0x3a,
0x76, 0xd7, 0x62, 0x96, 0x63, 0x7b, 0xd5, 0xf2, 0x86, 0xda, 0xa8, 0xb4, 0x9a, 0x7a, 0x1c, 0xe5,
0xe8, 0x60, 0xfa, 0xe0, 0xf8, 0x90, 0x03, 0x3c, 0x9d, 0xfb, 0x4f, 0x3f, 0xb9, 0xa9, 0x6f, 0x86,
0x7c, 0x06, 0x92, 0xc2, 0x21, 0x02, 0x79, 0x38, 0x21, 0x16, 0xbd, 0x0d, 0xe5, 0x2e, 0x61, 0xa4,
0x3a, 0xbb, 0xa1, 0x34, 0x2a, 0xad, 0xd7, 0x73, 0xc5, 0x4b, 0xbf, 0xe9, 0x98, 0x3c, 0xdd, 0xfe,
0x80, 0x51, 0xdb, 0xe3, 0xc2, 0x17, 0xf8, 0xc9, 0xb6, 0x08, 0x23, 0x58, 0x08, 0x41, 0x04, 0x2a,
0x36, 0x65, 0x4f, 0x1d, 0xf7, 0x98, 0x03, 0xab, 0x73, 0x42, 0xa6, 0xae, 0x4f, 0x49, 0x4c, 0x7d,
0x47, 0xd2, 0x8b, 0x23, 0x73, 0x2e, 0x63, 0x75, 0x34, 0xac, 0x57, 0x76, 0x62, 0x31, 0x38, 0x29,
0x53, 0xfb, 0x93, 0x02, 0x6b, 0x32, 0x40, 0x96, 0x63, 0x63, 0xea, 0xf9, 0x3d, 0x86, 0xbe, 0x03,
0xf3, 0x81, 0xcf, 0x3c, 0x11, 0x9c, 0x4a, 0xeb, 0xcb, 0x53, 0x75, 0x06, 0xca, 0xb2, 0x52, 0x8c,
0x55, 0xe9, 0xaa, 0xf9, 0x00, 0xef, 0xe1, 0x50, 0x28, 0x7a, 0x08, 0x4b, 0xb6, 0xd3, 0xa5, 0x7b,
0xb4, 0x47, 0x4d, 0xe6, 0xb8, 0x22, 0x6e, 0x95, 0xd6, 0x46, 0x52, 0x09, 0xaf, 0x12, 0xee, 0xf9,
0x9d, 0x04, 0x9d, 0xb1, 0x36, 0x1a, 0xd6, 0x97, 0x92, 0x10, 0x9c, 0x92, 0xa3, 0xfd, 0x5d, 0x85,
0x8a, 0x41, 0x3c, 0xcb, 0x0c, 0x34, 0xa2, 0xef, 0x03, 0x10, 0xc6, 0x5c, 0x6b, 0xdf, 0x67, 0xe2,
0x28, 0x3c, 0xe2, 0xb7, 0xa7, 0x1e, 0x25, 0xc1, 0xad, 0xb7, 0x23, 0xd6, 0x6d, 0x9b, 0xb9, 0xa7,
0xc6, 0xb5, 0x30, 0xf4, 0x31, 0xe2, 0xc3, 0x7f, 0xd4, 0x97, 0xdf, 0xf1, 0x49, 0xcf, 0x3a, 0xb0,
0x68, 0x77, 0x87, 0xf4, 0x29, 0x4e, 0x28, 0x44, 0x3e, 0x2c, 0x98, 0x64, 0x40, 0x4c, 0x8b, 0x9d,
0x56, 0x4b, 0x42, 0xf9, 0xad, 0xc2, 0xca, 0x37, 0x25, 0x63, 0xa0, 0xfa, 0xaa, 0x54, 0xbd, 0x10,
0x82, 0xc7, 0x15, 0x47, 0xaa, 0xd6, 0x8f, 0x61, 0x35, 0x63, 0x3a, 0x5a, 0x03, 0xf5, 0x98, 0x9e,
0x06, 0x95, 0x86, 0xf9, 0x4f, 0x64, 0xc0, 0xec, 0x09, 0xe9, 0xf9, 0x54, 0xd4, 0x55, 0xa5, 0x75,
0xa3, 0x48, 0x80, 0x43, 0xa1, 0x38, 0x60, 0xbd, 0x53, 0xba, 0xad, 0xac, 0x1f, 0xc1, 0x72, 0xca,
0xd4, 0x09, 0xaa, 0xda, 0x69, 0x55, 0xaf, 0x15, 0x50, 0x15, 0x8a, 0x4c, 0x68, 0xd2, 0xee, 0xc2,
0x85, 0xcd, 0xed, 0x7b, 0xb2, 0x87, 0xc8, 0x88, 0xa3, 0x16, 0x00, 0xfd, 0x60, 0xe0, 0x52, 0x8f,
0xd7, 0x8f, 0xec, 0x24, 0x51, 0x89, 0x6e, 0x47, 0x18, 0x9c, 0xa0, 0xd2, 0x7c, 0x90, 0x9d, 0x81,
0xf7, 0x16, 0x9b, 0xf4, 0xa9, 0xe4, 0x8b, 0x7a, 0x8b, 0xf0, 0xa7, 0xc0, 0xa0, 0x0e, 0xcc, 0xee,
0xf3, 0xa8, 0x48, 0xdb, 0x1b, 0x45, 0xe3, 0x67, 0x2c, 0x8e, 0x86, 0xf5, 0x59, 0x01, 0xc0, 0x81,
0x04, 0xed, 0xa3, 0x12, 0x7c, 0x21, 0x5b, 0x29, 0x9b, 0x8e, 0x7d, 0x60, 0x1d, 0xfa, 0xae, 0xf8,
0x40, 0x5f, 0x83, 0xb9, 0x40, 0xa2, 0x34, 0xa8, 0x11, 0x36, 0xb2, 0x3d, 0x01, 0x7d, 0x31, 0xac,
0xbf, 0x92, 0x65, 0x0d, 0x30, 0x58, 0xf2, 0xa1, 0x06, 0x2c, 0xb8, 0xf4, 0x89, 0x4f, 0x3d, 0xe6,
0x89, 0x8c, 0x5b, 0x34, 0x96, 0x78, 0xd6, 0x60, 0x09, 0xc3, 0x11, 0x16, 0xfd, 0x00, 0x2e, 0x06,
0xd5, 0x98, 0x32, 0x41, 0x56, 0xe2, 0x1b, 0x45, 0x42, 0x94, 0xe4, 0x33, 0xae, 0x48, 0x53, 0x2f,
0x4e, 0x40, 0xe2, 0x49, 0x9a, 0xb4, 0x4f, 0x15, 0x78, 0x65, 0x72, 0xe3, 0x40, 0x14, 0xe6, 0x5d,
0xf1, 0x2b, 0xac, 0xd9, 0x3b, 0x05, 0xec, 0x91, 0x67, 0xcc, 0xef, 0x42, 0xc1, 0xb7, 0x87, 0x43,
0xd9, 0x68, 0x1f, 0xe6, 0x4c, 0x61, 0x92, 0x2c, 0xce, 0x3b, 0x67, 0x6a, 0x72, 0xe9, 0xf3, 0x47,
0x33, 0x27, 0x00, 0x63, 0x29, 0x59, 0xfb, 0x85, 0x02, 0xab, 0x99, 0xea, 0x41, 0x35, 0x50, 0x2d,
0x9b, 0x89, 0x8c, 0x52, 0x83, 0xf8, 0x74, 0x6c, 0xf6, 0x90, 0xe7, 0x39, 0xe6, 0x08, 0x74, 0x15,
0xca, 0xfb, 0x7c, 0xe2, 0xf1, 0x58, 0x2c, 0x18, 0xcb, 0xa3, 0x61, 0x7d, 0xd1, 0x70, 0x9c, 0x5e,
0x40, 0x21, 0x50, 0xe8, 0x4b, 0x30, 0xe7, 0x31, 0xd7, 0xb2, 0x0f, 0xab, 0x65, 0x91, 0x29, 0xa2,
0xc7, 0xef, 0x09, 0x48, 0x40, 0x26, 0xd1, 0xe8, 0x3a, 0xcc, 0x9f, 0x50, 0x57, 0x14, 0xc7, 0xac,
0xa0, 0x14, 0x2d, 0xf4, 0x61, 0x00, 0x0a, 0x48, 0x43, 0x02, 0x8d, 0xc2, 0x4a, 0xba, 0xfa, 0xd0,
0x5e, 0x58, 0xb9, 0xca, 0xd8, 0xe4, 0x19, 0x1b, 0x96, 0xb1, 0xc7, 0xde, 0xf1, 0x89, 0xcd, 0x2c,
0x76, 0x6a, 0x2c, 0x4b, 0xa7, 0xcc, 0x06, 0x8a, 0x02, 0x59, 0xda, 0x2f, 0x4b, 0x50, 0x91, 0x7a,
0x7a, 0xc4, 0xea, 0xa3, 0x47, 0x89, 0x9c, 0x0d, 0xc2, 0x7d, 0xbd, 0x78, 0xb8, 0x8d, 0xb5, 0xb0,
0x33, 0x4e, 0xc8, 0xf1, 0x2e, 0x54, 0x4c, 0xc7, 0xf6, 0x98, 0x4b, 0x2c, 0x5b, 0x16, 0x44, 0x7a,
0x24, 0x4f, 0xc9, 0x6d, 0xc9, 0x65, 0x5c, 0x94, 0xf2, 0x2b, 0x31, 0xcc, 0xc3, 0x49, 0xb1, 0xe8,
0x71, 0x94, 0x46, 0xaa, 0x50, 0xf0, 0xd5, 0x22, 0x0a, 0xf8, 0xc9, 0x8b, 0x65, 0xd0, 0x1f, 0x14,
0xa8, 0xe6, 0x31, 0xa5, 0xea, 0x5d, 0xf9, 0x6f, 0xea, 0xbd, 0x74, 0x6e, 0xf5, 0xfe, 0x5b, 0x25,
0x11, 0x76, 0xcf, 0x43, 0xdf, 0x85, 0x05, 0xbe, 0x5d, 0x89, 0x65, 0x49, 0x19, 0xb3, 0x62, 0xca,
0x2e, 0xf6, 0x60, 0xff, 0x7b, 0xd4, 0x64, 0xf7, 0x29, 0x23, 0x71, 0xa7, 0x8f, 0x61, 0x38, 0x92,
0x8a, 0x76, 0xa0, 0xec, 0x0d, 0xa8, 0x79, 0x86, 0x09, 0x27, 0x2c, 0xdb, 0x1b, 0x50, 0x33, 0x9e,
0x05, 0xfc, 0x0b, 0x0b, 0x39, 0xda, 0x4f, 0x92, 0x91, 0xf0, 0xbc, 0x74, 0x24, 0x72, 0xfc, 0xab,
0x9c, 0x9b, 0x7f, 0x7f, 0x13, 0x75, 0x1a, 0x61, 0xdd, 0x3d, 0xcb, 0x63, 0xe8, 0xfd, 0x31, 0x1f,
0xeb, 0xc5, 0x7c, 0xcc, 0xb9, 0x85, 0x87, 0xa3, 0xf2, 0x0a, 0x21, 0x09, 0xff, 0xde, 0x87, 0x59,
0x8b, 0xd1, 0x7e, 0x58, 0x58, 0x8d, 0xa2, 0x0e, 0x8e, 0xfb, 0x42, 0x87, 0xb3, 0xe3, 0x40, 0x8a,
0xf6, 0xe7, 0xf4, 0x01, 0xb8, 0xe3, 0xd1, 0xfb, 0xb0, 0xe8, 0xc9, 0x51, 0x1f, 0x36, 0x87, 0x22,
0xeb, 0x43, 0xb4, 0x30, 0x5e, 0x90, 0x9a, 0x16, 0x43, 0x88, 0x87, 0x63, 0x81, 0x89, 0xca, 0x2d,
0x9d, 0xa5, 0x72, 0x33, 0xa1, 0xcf, 0xad, 0xdc, 0x27, 0x30, 0x29, 0x7a, 0xe8, 0x3d, 0x98, 0x73,
0x06, 0xe4, 0x49, 0xd4, 0x55, 0xa7, 0xef, 0x84, 0x0f, 0x04, 0xe9, 0xa4, 0x14, 0x01, 0xae, 0x32,
0x40, 0x63, 0x29, 0x51, 0xfb, 0x91, 0x02, 0x6b, 0xd9, 0x16, 0x76, 0x86, 0x26, 0xb1, 0x0b, 0x2b,
0x7d, 0xc2, 0xcc, 0xa3, 0x68, 0x56, 0xc9, 0x5b, 0x57, 0x63, 0x34, 0xac, 0xaf, 0xdc, 0x4f, 0x61,
0x5e, 0x0c, 0xeb, 0xe8, 0x2d, 0xbf, 0xd7, 0x3b, 0x4d, 0x6f, 0xa1, 0x19, 0x7e, 0xed, 0x43, 0x15,
0x96, 0x53, 0x0d, 0xbb, 0xc0, 0xce, 0xd5, 0x86, 0xd5, 0x6e, 0xec, 0x6b, 0x8e, 0x90, 0x66, 0x7c,
0x5e, 0x12, 0x27, 0xd3, 0x44, 0xf0, 0x65, 0xe9, 0xd3, 0x79, 0xa3, 0x7e, 0xd6, 0x79, 0xf3, 0x10,
0x56, 0x48, 0xb4, 0x07, 0xdc, 0x77, 0xba, 0x54, 0x4e, 0x61, 0x5d, 0x72, 0xad, 0xb4, 0x53, 0xd8,
0x17, 0xc3, 0xfa, 0xe7, 0xb2, 0xdb, 0x03, 0x87, 0xe3, 0x8c, 0x14, 0x74, 0x0d, 0x66, 0x4d, 0xc7,
0xb7, 0x99, 0x18, 0xd5, 0x6a, 0x5c, 0x26, 0x9b, 0x1c, 0x88, 0x03, 0x1c, 0xba, 0x09, 0x15, 0xd2,
0xed, 0x5b, 0x76, 0xdb, 0x34, 0xa9, 0xe7, 0x89, 0x3b, 0xe1, 0x42, 0x30, 0xff, 0xdb, 0x31, 0x18,
0x27, 0x69, 0xb4, 0x7f, 0x29, 0xe1, 0xe6, 0x99, 0xb3, 0x24, 0xa1, 0x57, 0xf9, 0xc6, 0x25, 0x50,
0x32, 0x2e, 0x89, 0xad, 0x49, 0x80, 0x71, 0x88, 0x4f, 0xdc, 0xdb, 0x4b, 0x85, 0xee, 0xed, 0x6a,
0x81, 0x7b, 0x7b, 0x79, 0xea, 0xbd, 0x3d, 0x73, 0xe2, 0xd9, 0x02, 0x27, 0xfe, 0x76, 0xb8, 0xca,
0x44, 0x17, 0x85, 0x0e, 0xa8, 0x26, 0xed, 0x4d, 0xe8, 0x82, 0xe3, 0xb9, 0x30, 0x76, 0xcb, 0x30,
0xe6, 0x47, 0xc3, 0xba, 0xba, 0xb9, 0x7d, 0x0f, 0x73, 0x19, 0xda, 0xaf, 0x14, 0xb8, 0x30, 0x76,
0xcd, 0x46, 0x6f, 0xc2, 0xb2, 0x65, 0x33, 0xea, 0x1e, 0x10, 0x93, 0xee, 0xc4, 0x09, 0x7e, 0x49,
0x1e, 0x6a, 0xb9, 0x93, 0x44, 0xe2, 0x34, 0x2d, 0xba, 0x0c, 0xaa, 0x35, 0x08, 0x57, 0x76, 0xa1,
0xad, 0xb3, 0xeb, 0x61, 0x0e, 0xe3, 0xd5, 0x70, 0x44, 0xdc, 0xee, 0x53, 0xe2, 0xd2, 0x76, 0xb7,
0xcb, 0xef, 0x30, 0xd2, 0xa5, 0x51, 0x35, 0x7c, 0x3d, 0x8d, 0xc6, 0x59, 0x7a, 0xed, 0xe7, 0x0a,
0x5c, 0xce, 0xed, 0x23, 0x85, 0x1f, 0x62, 0x08, 0xc0, 0x80, 0xb8, 0xa4, 0x4f, 0x19, 0x75, 0x3d,
0x39, 0x54, 0xcf, 0xf8, 0xbe, 0x11, 0xcd, 0xeb, 0xdd, 0x48, 0x10, 0x4e, 0x08, 0xd5, 0x7e, 0x5a,
0x82, 0x65, 0x2c, 0xc3, 0x11, 0x2c, 0x87, 0xff, 0xfb, 0x2d, 0x61, 0x37, 0xb5, 0x25, 0x4c, 0xcf,
0x8c, 0x94, 0x6d, 0x79, 0x7b, 0x02, 0x7a, 0xc4, 0x97, 0x73, 0xc2, 0x7c, 0xaf, 0xd0, 0x6d, 0x2a,
0x2d, 0x53, 0xf0, 0xc5, 0x21, 0x08, 0xbe, 0xb1, 0x94, 0xa7, 0x8d, 0x14, 0xa8, 0xa5, 0xe8, 0x79,
0x97, 0xf7, 0xfb, 0xd4, 0xc5, 0xf4, 0x80, 0xba, 0xd4, 0x36, 0x29, 0xba, 0x01, 0x0b, 0x64, 0x60,
0xdd, 0x75, 0x1d, 0x7f, 0x20, 0xe3, 0x19, 0x8d, 0xf0, 0xf6, 0x6e, 0x47, 0xc0, 0x71, 0x44, 0xc1,
0xa9, 0x43, 0x83, 0x64, 0x56, 0x25, 0xf6, 0xe9, 0x00, 0x8e, 0x23, 0x8a, 0xa8, 0x75, 0x97, 0x73,
0x5b, 0xb7, 0x01, 0xaa, 0x6f, 0x75, 0xe5, 0x55, 0xe3, 0x0d, 0x49, 0xa0, 0xbe, 0xdb, 0xd9, 0x7a,
0x31, 0xac, 0x5f, 0xcd, 0x7b, 0x42, 0x64, 0xa7, 0x03, 0xea, 0xe9, 0xef, 0x76, 0xb6, 0x30, 0x67,
0xd6, 0x7e, 0xa7, 0xc0, 0x85, 0xd4, 0x21, 0xcf, 0x61, 0x95, 0x79, 0x90, 0x5e, 0x65, 0xae, 0x17,
0x8f, 0x58, 0xce, 0x32, 0x73, 0x94, 0x39, 0x83, 0xd8, 0x66, 0xf6, 0xb2, 0xcf, 0x6a, 0x8d, 0xa2,
0x57, 0x85, 0xfc, 0xb7, 0x34, 0xed, 0x8f, 0x25, 0xb8, 0x38, 0x21, 0x87, 0xd0, 0x63, 0x80, 0x78,
0xbc, 0x48, 0x7d, 0xd3, 0xef, 0x3e, 0x63, 0x57, 0xe7, 0x15, 0xf1, 0xd8, 0x15, 0x43, 0x13, 0x02,
0x91, 0x0b, 0x15, 0x97, 0x7a, 0xd4, 0x3d, 0xa1, 0xdd, 0xb7, 0x1c, 0x57, 0xfa, 0xed, 0xcd, 0xe2,
0x7e, 0x1b, 0xcb, 0xdc, 0xf8, 0xa6, 0x85, 0x63, 0xb9, 0x38, 0xa9, 0x04, 0x3d, 0x8e, 0xfd, 0x17,
0xbc, 0xde, 0xb6, 0x8a, 0x9c, 0x27, 0xfd, 0xee, 0x3c, 0xc5, 0x93, 0x7f, 0x53, 0xe0, 0x52, 0xca,
0xc6, 0x6f, 0xd2, 0xfe, 0xa0, 0x47, 0x18, 0x3d, 0x87, 0x2e, 0xf4, 0x28, 0xd5, 0x85, 0x6e, 0x15,
0xf7, 0x63, 0x68, 0x63, 0xee, 0xad, 0xe5, 0xaf, 0x0a, 0x5c, 0x9e, 0xc8, 0x71, 0x0e, 0x65, 0xf5,
0xad, 0x74, 0x59, 0xb5, 0xce, 0x7e, 0xac, 0x9c, 0xf2, 0xfa, 0x4b, 0xde, 0xa1, 0x44, 0x9d, 0xfd,
0x1f, 0x0e, 0x0d, 0xed, 0xd7, 0x0a, 0x2c, 0x85, 0x94, 0x7c, 0x47, 0x2a, 0xb0, 0x27, 0xb7, 0x00,
0xe4, 0xdf, 0x2d, 0xe1, 0x4d, 0x5e, 0x8d, 0xcd, 0xbe, 0x1b, 0x61, 0x70, 0x82, 0x0a, 0x7d, 0x03,
0x50, 0x68, 0xe0, 0x5e, 0x4f, 0xac, 0x02, 0x7c, 0xdf, 0x54, 0x05, 0xef, 0xba, 0xe4, 0x45, 0x78,
0x8c, 0x02, 0x4f, 0xe0, 0xd2, 0x7e, 0xaf, 0xc4, 0xd3, 0x5a, 0x80, 0x5f, 0x52, 0xc7, 0x0b, 0xdb,
0x72, 0x1d, 0x9f, 0x1c, 0x37, 0x82, 0xf2, 0x65, 0x1d, 0x37, 0xc2, 0xb8, 0x9c, 0x7a, 0xf8, 0x48,
0xcd, 0x1c, 0x42, 0xd4, 0x41, 0xd1, 0xcd, 0xee, 0xed, 0xc4, 0x5f, 0x6c, 0x95, 0xd6, 0xab, 0x85,
0xac, 0xe1, 0x39, 0x3a, 0x71, 0xab, 0xbf, 0x01, 0x0b, 0xb6, 0xd3, 0x0d, 0x56, 0xe0, 0xcc, 0x4a,
0xb1, 0x23, 0xe1, 0x38, 0xa2, 0x18, 0xfb, 0x27, 0xa8, 0xfc, 0xd9, 0xfc, 0x13, 0x24, 0xd6, 0xa0,
0x5e, 0x8f, 0x13, 0x84, 0x17, 0x86, 0x78, 0x0d, 0x92, 0x70, 0x1c, 0x51, 0xa0, 0x9d, 0x78, 0xb0,
0xcc, 0x89, 0x88, 0x5c, 0x2b, 0x30, 0x98, 0xf3, 0x27, 0x89, 0xd1, 0x7e, 0xf6, 0xbc, 0x36, 0xf3,
0xf1, 0xf3, 0xda, 0xcc, 0x27, 0xcf, 0x6b, 0x33, 0x3f, 0x1c, 0xd5, 0x94, 0x67, 0xa3, 0x9a, 0xf2,
0xf1, 0xa8, 0xa6, 0x7c, 0x32, 0xaa, 0x29, 0xff, 0x1c, 0xd5, 0x94, 0x1f, 0x7f, 0x5a, 0x9b, 0x79,
0xef, 0xca, 0x94, 0x7f, 0xa3, 0xff, 0x1d, 0x00, 0x00, 0xff, 0xff, 0xe1, 0xe6, 0x3e, 0xd5, 0xab,
0x1e, 0x00, 0x00,
// 2103 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x1a, 0x4b, 0x6f, 0x1c, 0x49,
0xd9, 0x3d, 0x3d, 0x7e, 0x7d, 0xe3, 0x57, 0x2a, 0x24, 0x4c, 0x1c, 0x31, 0xe3, 0x74, 0x24, 0xf0,
0x66, 0xb3, 0x33, 0x9b, 0x01, 0xa2, 0x28, 0x7b, 0x61, 0xda, 0x76, 0x82, 0xd9, 0xc4, 0xf1, 0x96,
0xd9, 0x10, 0x2d, 0x1b, 0x44, 0x4d, 0x4f, 0xd9, 0x6e, 0xdc, 0xd3, 0x3d, 0xe9, 0xae, 0x76, 0xd6,
0x07, 0x04, 0xe2, 0xbc, 0x42, 0xdc, 0x11, 0x1c, 0x91, 0x90, 0x10, 0xe2, 0x17, 0x80, 0x04, 0x42,
0x44, 0x1c, 0x60, 0xb5, 0x5c, 0x56, 0x1c, 0x06, 0x32, 0xfb, 0x03, 0x10, 0xd7, 0x9c, 0x50, 0x55,
0x57, 0x3f, 0x67, 0x7a, 0xb6, 0x0d, 0x8b, 0x15, 0x24, 0x6e, 0xee, 0xef, 0x5d, 0xdf, 0xbb, 0x6a,
0x0c, 0xaf, 0x1e, 0xdd, 0xf2, 0x1a, 0xa6, 0xd3, 0x24, 0x7d, 0xb3, 0xe9, 0x52, 0xcf, 0xf1, 0x5d,
0x83, 0x36, 0x8f, 0x6f, 0x74, 0x28, 0x23, 0x37, 0x9a, 0x07, 0xd4, 0xa6, 0x2e, 0x61, 0xb4, 0xdb,
0xe8, 0xbb, 0x0e, 0x73, 0xd0, 0xe5, 0x80, 0xb8, 0x41, 0xfa, 0x66, 0x23, 0x24, 0x6e, 0x48, 0xe2,
0xd5, 0xd7, 0x0e, 0x4c, 0x76, 0xe8, 0x77, 0x1a, 0x86, 0xd3, 0x6b, 0x1e, 0x38, 0x07, 0x4e, 0x53,
0xf0, 0x74, 0xfc, 0x7d, 0xf1, 0x25, 0x3e, 0xc4, 0x5f, 0x81, 0xac, 0x55, 0x2d, 0xa1, 0xd8, 0x70,
0x5c, 0xae, 0x34, 0xab, 0x6f, 0xf5, 0x4b, 0x31, 0x4d, 0x8f, 0x18, 0x87, 0xa6, 0x4d, 0xdd, 0x93,
0x66, 0xff, 0xe8, 0x20, 0x6d, 0xed, 0x69, 0xb8, 0xbc, 0x66, 0x8f, 0x32, 0x32, 0x4e, 0x57, 0x33,
0x8f, 0xcb, 0xf5, 0x6d, 0x66, 0xf6, 0x46, 0xd5, 0xdc, 0xfc, 0x24, 0x06, 0xcf, 0x38, 0xa4, 0x3d,
0x92, 0xe5, 0xd3, 0x7e, 0xaa, 0xc2, 0x85, 0xb6, 0x65, 0x39, 0x06, 0x87, 0x6d, 0xd2, 0x63, 0xd3,
0xa0, 0x7b, 0x8c, 0x30, 0xdf, 0x43, 0x9f, 0x87, 0x99, 0xae, 0x6b, 0x1e, 0x53, 0xb7, 0xaa, 0xac,
0x29, 0xeb, 0xf3, 0xfa, 0xd2, 0xb3, 0x41, 0x7d, 0x6a, 0x38, 0xa8, 0xcf, 0x6c, 0x0a, 0x28, 0x96,
0x58, 0xb4, 0x06, 0xe5, 0xbe, 0xe3, 0x58, 0xd5, 0x92, 0xa0, 0x5a, 0x90, 0x54, 0xe5, 0x5d, 0xc7,
0xb1, 0xb0, 0xc0, 0x08, 0x49, 0x42, 0x72, 0x55, 0xcd, 0x48, 0x12, 0x50, 0x2c, 0xb1, 0xc8, 0x00,
0x30, 0x1c, 0xbb, 0x6b, 0x32, 0xd3, 0xb1, 0xbd, 0x6a, 0x79, 0x4d, 0x5d, 0xaf, 0xb4, 0x9a, 0x8d,
0x38, 0xca, 0xd1, 0xc1, 0x1a, 0xfd, 0xa3, 0x03, 0x0e, 0xf0, 0x1a, 0xdc, 0x7f, 0x8d, 0xe3, 0x1b,
0x8d, 0x8d, 0x90, 0x4f, 0x47, 0x52, 0x38, 0x44, 0x20, 0x0f, 0x27, 0xc4, 0xa2, 0x37, 0xa1, 0xdc,
0x25, 0x8c, 0x54, 0xa7, 0xd7, 0x94, 0xf5, 0x4a, 0xeb, 0xb5, 0x5c, 0xf1, 0xd2, 0x6f, 0x0d, 0x4c,
0x9e, 0x6e, 0xbd, 0xc7, 0xa8, 0xed, 0x71, 0xe1, 0x73, 0xfc, 0x64, 0x9b, 0x84, 0x11, 0x2c, 0x84,
0x20, 0x02, 0x15, 0x9b, 0xb2, 0xa7, 0x8e, 0x7b, 0xc4, 0x81, 0xd5, 0x19, 0x21, 0xb3, 0xd1, 0x98,
0x90, 0x98, 0x8d, 0x1d, 0x49, 0x2f, 0x8e, 0xcc, 0xb9, 0xf4, 0xe5, 0xe1, 0xa0, 0x5e, 0xd9, 0x89,
0xc5, 0xe0, 0xa4, 0x4c, 0xed, 0x8f, 0x0a, 0xac, 0xc8, 0x00, 0x99, 0x8e, 0x8d, 0xa9, 0xe7, 0x5b,
0x0c, 0x7d, 0x0b, 0x66, 0x03, 0x9f, 0x79, 0x22, 0x38, 0x95, 0xd6, 0x17, 0x27, 0xea, 0x0c, 0x94,
0x65, 0xa5, 0xe8, 0xcb, 0xd2, 0x55, 0xb3, 0x01, 0xde, 0xc3, 0xa1, 0x50, 0xf4, 0x10, 0x16, 0x6c,
0xa7, 0x4b, 0xf7, 0xa8, 0x45, 0x0d, 0xe6, 0xb8, 0x22, 0x6e, 0x95, 0xd6, 0x5a, 0x52, 0x09, 0xaf,
0x12, 0xee, 0xf9, 0x9d, 0x04, 0x9d, 0xbe, 0x32, 0x1c, 0xd4, 0x17, 0x92, 0x10, 0x9c, 0x92, 0xa3,
0xfd, 0x55, 0x85, 0x8a, 0x4e, 0x3c, 0xd3, 0x08, 0x34, 0xa2, 0xef, 0x02, 0x10, 0xc6, 0x5c, 0xb3,
0xe3, 0x33, 0x71, 0x14, 0x1e, 0xf1, 0x5b, 0x13, 0x8f, 0x92, 0xe0, 0x6e, 0xb4, 0x23, 0xd6, 0x2d,
0x9b, 0xb9, 0x27, 0xfa, 0xd5, 0x30, 0xf4, 0x31, 0xe2, 0x07, 0x7f, 0xab, 0x2f, 0xbe, 0xe5, 0x13,
0xcb, 0xdc, 0x37, 0x69, 0x77, 0x87, 0xf4, 0x28, 0x4e, 0x28, 0x44, 0x3e, 0xcc, 0x19, 0xa4, 0x4f,
0x0c, 0x93, 0x9d, 0x54, 0x4b, 0x42, 0xf9, 0xcd, 0xc2, 0xca, 0x37, 0x24, 0x63, 0xa0, 0xfa, 0x8a,
0x54, 0x3d, 0x17, 0x82, 0x47, 0x15, 0x47, 0xaa, 0x56, 0x8f, 0x60, 0x39, 0x63, 0x3a, 0x5a, 0x01,
0xf5, 0x88, 0x9e, 0x04, 0x95, 0x86, 0xf9, 0x9f, 0x48, 0x87, 0xe9, 0x63, 0x62, 0xf9, 0x54, 0xd4,
0x55, 0xa5, 0x75, 0xbd, 0x48, 0x80, 0x43, 0xa1, 0x38, 0x60, 0xbd, 0x5d, 0xba, 0xa5, 0xac, 0x1e,
0xc2, 0x62, 0xca, 0xd4, 0x31, 0xaa, 0xda, 0x69, 0x55, 0xaf, 0x16, 0x50, 0x15, 0x8a, 0x4c, 0x68,
0xd2, 0xee, 0xc2, 0xb9, 0x8d, 0xad, 0x7b, 0xb2, 0x87, 0xc8, 0x88, 0xa3, 0x16, 0x00, 0x7d, 0xaf,
0xef, 0x52, 0x8f, 0xd7, 0x8f, 0xec, 0x24, 0x51, 0x89, 0x6e, 0x45, 0x18, 0x9c, 0xa0, 0xd2, 0x7c,
0x90, 0x9d, 0x81, 0xf7, 0x16, 0x9b, 0xf4, 0xa8, 0xe4, 0x8b, 0x7a, 0x8b, 0xf0, 0xa7, 0xc0, 0xa0,
0x6d, 0x98, 0xee, 0xf0, 0xa8, 0x48, 0xdb, 0xd7, 0x8b, 0xc6, 0x4f, 0x9f, 0x1f, 0x0e, 0xea, 0xd3,
0x02, 0x80, 0x03, 0x09, 0xda, 0xfb, 0x25, 0xf8, 0x5c, 0xb6, 0x52, 0x36, 0x1c, 0x7b, 0xdf, 0x3c,
0xf0, 0x5d, 0xf1, 0x81, 0xbe, 0x02, 0x33, 0x81, 0x44, 0x69, 0xd0, 0x7a, 0xd8, 0xc8, 0xf6, 0x04,
0xf4, 0xc5, 0xa0, 0x7e, 0x31, 0xcb, 0x1a, 0x60, 0xb0, 0xe4, 0x43, 0xeb, 0x30, 0xe7, 0xd2, 0x27,
0x3e, 0xf5, 0x98, 0x27, 0x32, 0x6e, 0x5e, 0x5f, 0xe0, 0x59, 0x83, 0x25, 0x0c, 0x47, 0x58, 0xf4,
0x3d, 0x38, 0x1f, 0x54, 0x63, 0xca, 0x04, 0x59, 0x89, 0xaf, 0x17, 0x09, 0x51, 0x92, 0x4f, 0xbf,
0x2c, 0x4d, 0x3d, 0x3f, 0x06, 0x89, 0xc7, 0x69, 0xd2, 0x3e, 0x56, 0xe0, 0xe2, 0xf8, 0xc6, 0x81,
0x28, 0xcc, 0xba, 0xe2, 0xaf, 0xb0, 0x66, 0x6f, 0x17, 0xb0, 0x47, 0x9e, 0x31, 0xbf, 0x0b, 0x05,
0xdf, 0x1e, 0x0e, 0x65, 0xa3, 0x0e, 0xcc, 0x18, 0xc2, 0x24, 0x59, 0x9c, 0xb7, 0x4f, 0xd5, 0xe4,
0xd2, 0xe7, 0x8f, 0x66, 0x4e, 0x00, 0xc6, 0x52, 0xb2, 0xf6, 0x73, 0x05, 0x96, 0x33, 0xd5, 0x83,
0x6a, 0xa0, 0x9a, 0x36, 0x13, 0x19, 0xa5, 0x06, 0xf1, 0xd9, 0xb6, 0xd9, 0x43, 0x9e, 0xe7, 0x98,
0x23, 0xd0, 0x15, 0x28, 0x77, 0xf8, 0xc4, 0xe3, 0xb1, 0x98, 0xd3, 0x17, 0x87, 0x83, 0xfa, 0xbc,
0xee, 0x38, 0x56, 0x40, 0x21, 0x50, 0xe8, 0x0b, 0x30, 0xe3, 0x31, 0xd7, 0xb4, 0x0f, 0xaa, 0x65,
0x91, 0x29, 0xa2, 0xc7, 0xef, 0x09, 0x48, 0x40, 0x26, 0xd1, 0xe8, 0x1a, 0xcc, 0x1e, 0x53, 0x57,
0x14, 0xc7, 0xb4, 0xa0, 0x14, 0x2d, 0xf4, 0x61, 0x00, 0x0a, 0x48, 0x43, 0x02, 0x8d, 0xc2, 0x52,
0xba, 0xfa, 0xd0, 0x5e, 0x58, 0xb9, 0xca, 0xc8, 0xe4, 0x19, 0x19, 0x96, 0xb1, 0xc7, 0xde, 0xf2,
0x89, 0xcd, 0x4c, 0x76, 0xa2, 0x2f, 0x4a, 0xa7, 0x4c, 0x07, 0x8a, 0x02, 0x59, 0xda, 0x2f, 0x4a,
0x50, 0x91, 0x7a, 0x2c, 0x62, 0xf6, 0xd0, 0xa3, 0x44, 0xce, 0x06, 0xe1, 0xbe, 0x56, 0x3c, 0xdc,
0xfa, 0x4a, 0xd8, 0x19, 0xc7, 0xe4, 0x78, 0x17, 0x2a, 0x86, 0x63, 0x7b, 0xcc, 0x25, 0xa6, 0x2d,
0x0b, 0x22, 0x3d, 0x92, 0x27, 0xe4, 0xb6, 0xe4, 0xd2, 0xcf, 0x4b, 0xf9, 0x95, 0x18, 0xe6, 0xe1,
0xa4, 0x58, 0xf4, 0x38, 0x4a, 0x23, 0x55, 0x28, 0xf8, 0x72, 0x11, 0x05, 0xfc, 0xe4, 0xc5, 0x32,
0xe8, 0xf7, 0x0a, 0x54, 0xf3, 0x98, 0x52, 0xf5, 0xae, 0xfc, 0x3b, 0xf5, 0x5e, 0x3a, 0xb3, 0x7a,
0xff, 0x8d, 0x92, 0x08, 0xbb, 0xe7, 0xa1, 0x6f, 0xc3, 0x1c, 0xdf, 0xae, 0xc4, 0xb2, 0xa4, 0x8c,
0x58, 0x31, 0x61, 0x17, 0x7b, 0xd0, 0xf9, 0x0e, 0x35, 0xd8, 0x7d, 0xca, 0x48, 0xdc, 0xe9, 0x63,
0x18, 0x8e, 0xa4, 0xa2, 0x1d, 0x28, 0x7b, 0x7d, 0x6a, 0x9c, 0x62, 0xc2, 0x09, 0xcb, 0xf6, 0xfa,
0xd4, 0x88, 0x67, 0x01, 0xff, 0xc2, 0x42, 0x8e, 0xf6, 0xe3, 0x64, 0x24, 0x3c, 0x2f, 0x1d, 0x89,
0x1c, 0xff, 0x2a, 0x67, 0xe6, 0xdf, 0x5f, 0x47, 0x9d, 0x46, 0x58, 0x77, 0xcf, 0xf4, 0x18, 0x7a,
0x77, 0xc4, 0xc7, 0x8d, 0x62, 0x3e, 0xe6, 0xdc, 0xc2, 0xc3, 0x51, 0x79, 0x85, 0x90, 0x84, 0x7f,
0xef, 0xc3, 0xb4, 0xc9, 0x68, 0x2f, 0x2c, 0xac, 0xf5, 0xa2, 0x0e, 0x8e, 0xfb, 0xc2, 0x36, 0x67,
0xc7, 0x81, 0x14, 0xed, 0x4f, 0xe9, 0x03, 0x70, 0xc7, 0xa3, 0x77, 0x61, 0xde, 0x93, 0xa3, 0x3e,
0x6c, 0x0e, 0x45, 0xd6, 0x87, 0x68, 0x61, 0x3c, 0x27, 0x35, 0xcd, 0x87, 0x10, 0x0f, 0xc7, 0x02,
0x13, 0x95, 0x5b, 0x3a, 0x4d, 0xe5, 0x66, 0x42, 0x9f, 0x5b, 0xb9, 0x4f, 0x60, 0x5c, 0xf4, 0xd0,
0x3b, 0x30, 0xe3, 0xf4, 0xc9, 0x93, 0xa8, 0xab, 0x4e, 0xde, 0x09, 0x1f, 0x08, 0xd2, 0x71, 0x29,
0x02, 0x5c, 0x65, 0x80, 0xc6, 0x52, 0xa2, 0xf6, 0x43, 0x05, 0x56, 0xb2, 0x2d, 0xec, 0x14, 0x4d,
0x62, 0x17, 0x96, 0x7a, 0x84, 0x19, 0x87, 0xd1, 0xac, 0x92, 0xb7, 0xae, 0xf5, 0xe1, 0xa0, 0xbe,
0x74, 0x3f, 0x85, 0x79, 0x31, 0xa8, 0xa3, 0x3b, 0xbe, 0x65, 0x9d, 0xa4, 0xb7, 0xd0, 0x0c, 0xbf,
0xf6, 0x4f, 0x15, 0x16, 0x53, 0x0d, 0xbb, 0xc0, 0xce, 0xd5, 0x86, 0xe5, 0x6e, 0xec, 0x6b, 0x8e,
0x90, 0x66, 0x7c, 0x56, 0x12, 0x27, 0xd3, 0x44, 0xf0, 0x65, 0xe9, 0xd3, 0x79, 0xa3, 0x7e, 0xda,
0x79, 0xf3, 0x10, 0x96, 0x48, 0xb4, 0x07, 0xdc, 0x77, 0xba, 0x54, 0x4e, 0xe1, 0x86, 0xe4, 0x5a,
0x6a, 0xa7, 0xb0, 0x2f, 0x06, 0xf5, 0xcf, 0x64, 0xb7, 0x07, 0x0e, 0xc7, 0x19, 0x29, 0xe8, 0x2a,
0x4c, 0x1b, 0x8e, 0x6f, 0x33, 0x31, 0xaa, 0xd5, 0xb8, 0x4c, 0x36, 0x38, 0x10, 0x07, 0x38, 0x74,
0x03, 0x2a, 0xa4, 0xdb, 0x33, 0xed, 0xb6, 0x61, 0x50, 0xcf, 0x13, 0x77, 0xc2, 0xb9, 0x60, 0xfe,
0xb7, 0x63, 0x30, 0x4e, 0xd2, 0xa0, 0x1e, 0x2c, 0xed, 0x9b, 0xae, 0xc7, 0xda, 0xc7, 0xc4, 0xb4,
0x48, 0xc7, 0xa2, 0xd5, 0xd9, 0xc2, 0xa3, 0x70, 0xcf, 0xef, 0x84, 0xa3, 0xf6, 0x62, 0x78, 0xbc,
0x3b, 0x29, 0x61, 0x38, 0x23, 0x5c, 0xfb, 0x87, 0x12, 0x2e, 0xba, 0x39, 0x3b, 0x19, 0x7a, 0x85,
0x2f, 0x78, 0x02, 0x25, 0xd3, 0x20, 0xb1, 0xa4, 0x09, 0x30, 0x0e, 0xf1, 0x89, 0x67, 0x82, 0x52,
0xa1, 0x67, 0x02, 0xb5, 0xc0, 0x33, 0x41, 0x79, 0xe2, 0x33, 0x41, 0xc6, 0xc1, 0xd3, 0x9f, 0xec,
0x60, 0xed, 0x9b, 0xe1, 0xe6, 0x14, 0xdd, 0x4b, 0xb6, 0x41, 0x35, 0xa8, 0x35, 0xa6, 0xe9, 0x8e,
0xfa, 0x79, 0xe4, 0x52, 0xa3, 0xcf, 0x0e, 0x07, 0x75, 0x75, 0x63, 0xeb, 0x1e, 0xe6, 0x32, 0xb4,
0x0f, 0x4b, 0x61, 0x4d, 0xc7, 0xb1, 0xf8, 0x7f, 0x15, 0xfd, 0x67, 0x55, 0xa4, 0xfd, 0x52, 0x81,
0x73, 0x23, 0x4f, 0x25, 0xe8, 0x0d, 0x58, 0x34, 0x6d, 0x46, 0xdd, 0x7d, 0x62, 0xd0, 0x9d, 0xd8,
0xbd, 0x17, 0xa4, 0x88, 0xc5, 0xed, 0x24, 0x12, 0xa7, 0x69, 0xd1, 0x25, 0x50, 0xcd, 0x7e, 0x78,
0xed, 0x12, 0x21, 0xdc, 0xde, 0xf5, 0x30, 0x87, 0xf1, 0x58, 0x1c, 0x12, 0xb7, 0xfb, 0x94, 0xb8,
0xb4, 0xdd, 0xed, 0xf2, 0x7b, 0xa8, 0xcc, 0xd3, 0x28, 0x16, 0x5f, 0x4d, 0xa3, 0x71, 0x96, 0x5e,
0xfb, 0x99, 0x02, 0x97, 0x72, 0x67, 0x41, 0xe1, 0xc7, 0x34, 0x02, 0xd0, 0x27, 0x2e, 0xe9, 0x51,
0x46, 0x5d, 0x4f, 0x2e, 0x46, 0xa7, 0x7c, 0xa3, 0x8a, 0x76, 0xae, 0xdd, 0x48, 0x10, 0x4e, 0x08,
0xd5, 0x7e, 0x52, 0x82, 0x45, 0x2c, 0x13, 0x23, 0x58, 0xf0, 0xff, 0xfb, 0x9b, 0xde, 0x6e, 0x6a,
0xd3, 0x9b, 0x5c, 0x6e, 0x29, 0xdb, 0xf2, 0x76, 0x3d, 0xf4, 0x88, 0x5f, 0xb0, 0x08, 0xf3, 0xbd,
0x42, 0x37, 0xe2, 0xb4, 0x4c, 0xc1, 0x17, 0x87, 0x20, 0xf8, 0xc6, 0x52, 0x9e, 0x36, 0x54, 0xa0,
0x96, 0xa2, 0xe7, 0x93, 0xda, 0xef, 0x51, 0x17, 0xd3, 0x7d, 0xea, 0x52, 0xdb, 0xa0, 0xe8, 0x3a,
0xcc, 0x91, 0xbe, 0x79, 0xd7, 0x75, 0xfc, 0xbe, 0x8c, 0x67, 0xb4, 0x86, 0xb5, 0x77, 0xb7, 0x05,
0x1c, 0x47, 0x14, 0x9c, 0x3a, 0x34, 0x48, 0x66, 0x55, 0xe2, 0x4e, 0x14, 0xc0, 0x71, 0x44, 0x11,
0x35, 0x8e, 0x72, 0x6e, 0xe3, 0xd0, 0x41, 0xf5, 0xcd, 0xae, 0xbc, 0x2e, 0xbe, 0x2e, 0x09, 0xd4,
0xb7, 0xb7, 0x37, 0x5f, 0x0c, 0xea, 0x57, 0xf2, 0x9e, 0x81, 0xd9, 0x49, 0x9f, 0x7a, 0x8d, 0xb7,
0xb7, 0x37, 0x31, 0x67, 0xd6, 0x7e, 0xab, 0xc0, 0xb9, 0xd4, 0x21, 0xcf, 0x60, 0x1d, 0x7d, 0x90,
0x5e, 0x47, 0xaf, 0x15, 0x8f, 0x58, 0xce, 0x42, 0x7a, 0x98, 0x39, 0x83, 0xd8, 0x48, 0xf7, 0xb2,
0x4f, 0xa3, 0xeb, 0x45, 0xaf, 0x7b, 0xf9, 0xef, 0xa1, 0xda, 0x1f, 0x4a, 0x70, 0x7e, 0x4c, 0x0e,
0xa1, 0xc7, 0x00, 0x71, 0x73, 0x93, 0xfa, 0x26, 0x0f, 0xed, 0x91, 0xe7, 0x8f, 0x25, 0xf1, 0x60,
0x19, 0x43, 0x13, 0x02, 0x91, 0x0b, 0x15, 0x97, 0x7a, 0xd4, 0x3d, 0xa6, 0xdd, 0x3b, 0x8e, 0x2b,
0xfd, 0xf6, 0x46, 0x71, 0xbf, 0x8d, 0x64, 0x6e, 0x7c, 0x5b, 0xc6, 0xb1, 0x5c, 0x9c, 0x54, 0x82,
0x1e, 0xc7, 0xfe, 0x0b, 0x5e, 0xe0, 0x5b, 0x45, 0xce, 0x93, 0xfe, 0xed, 0x60, 0x82, 0x27, 0xff,
0xa2, 0xc0, 0x85, 0x94, 0x8d, 0x5f, 0xa7, 0xbd, 0xbe, 0x45, 0x18, 0x3d, 0x83, 0x2e, 0xf4, 0x28,
0xd5, 0x85, 0x6e, 0x16, 0xf7, 0x63, 0x68, 0x63, 0xee, 0xcd, 0xf3, 0x43, 0x05, 0x2e, 0x8d, 0xe5,
0x38, 0x83, 0xb2, 0xfa, 0x46, 0xba, 0xac, 0x5a, 0xa7, 0x3f, 0x56, 0x4e, 0x79, 0xfd, 0x39, 0xef,
0x50, 0xa2, 0xce, 0xfe, 0x07, 0x87, 0x86, 0xf6, 0x2b, 0x05, 0x16, 0x42, 0x4a, 0xbe, 0x78, 0x16,
0xd8, 0xd2, 0x5a, 0x00, 0xf2, 0x27, 0xb3, 0xf0, 0x35, 0x46, 0x8d, 0xcd, 0xbe, 0x1b, 0x61, 0x70,
0x82, 0x0a, 0x7d, 0x0d, 0x50, 0x68, 0xe0, 0x9e, 0x25, 0x56, 0x01, 0xbe, 0xed, 0xa8, 0x82, 0x77,
0x55, 0xf2, 0x22, 0x3c, 0x42, 0x81, 0xc7, 0x70, 0x69, 0xbf, 0x53, 0xe2, 0x69, 0x2d, 0xc0, 0x2f,
0xa9, 0xe3, 0x85, 0x6d, 0xb9, 0x8e, 0x4f, 0x8e, 0x1b, 0x41, 0xf9, 0xb2, 0x8e, 0x1b, 0x61, 0x5c,
0x4e, 0x3d, 0xbc, 0xaf, 0x66, 0x0e, 0x21, 0xea, 0xa0, 0xe8, 0x66, 0xf7, 0x66, 0xe2, 0x67, 0xd2,
0x4a, 0xeb, 0x95, 0x42, 0xd6, 0xf0, 0x1c, 0x1d, 0x7b, 0x55, 0xba, 0x0e, 0x73, 0xb6, 0xd3, 0x0d,
0x56, 0xe0, 0xcc, 0x4a, 0xb1, 0x23, 0xe1, 0x38, 0xa2, 0x18, 0xf9, 0x35, 0xaf, 0xfc, 0xe9, 0xfc,
0x9a, 0x27, 0xd6, 0x20, 0xcb, 0xe2, 0x04, 0xe1, 0x2d, 0x2c, 0x5e, 0x83, 0x24, 0x1c, 0x47, 0x14,
0x68, 0x27, 0x1e, 0x2c, 0x33, 0x22, 0x22, 0x57, 0x0b, 0x0c, 0xe6, 0xfc, 0x49, 0xa2, 0xb7, 0x9f,
0x3d, 0xaf, 0x4d, 0x7d, 0xf0, 0xbc, 0x36, 0xf5, 0xd1, 0xf3, 0xda, 0xd4, 0xf7, 0x87, 0x35, 0xe5,
0xd9, 0xb0, 0xa6, 0x7c, 0x30, 0xac, 0x29, 0x1f, 0x0d, 0x6b, 0xca, 0xdf, 0x87, 0x35, 0xe5, 0x47,
0x1f, 0xd7, 0xa6, 0xde, 0xb9, 0x3c, 0xe1, 0x3f, 0x0a, 0xfe, 0x15, 0x00, 0x00, 0xff, 0xff, 0xa6,
0xd4, 0xe9, 0x0d, 0x6f, 0x20, 0x00, 0x00,
}
func (m *AllocatedDeviceStatus) Marshal() (dAtA []byte, err error) {
@@ -2005,6 +2037,20 @@ func (m *DeviceRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
if len(m.FirstAvailable) > 0 {
for iNdEx := len(m.FirstAvailable) - 1; iNdEx >= 0; iNdEx-- {
{
size, err := m.FirstAvailable[iNdEx].MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintGenerated(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x3a
}
}
if m.AdminAccess != nil {
i--
if *m.AdminAccess {
@@ -2138,6 +2184,61 @@ func (m *DeviceSelector) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
func (m *DeviceSubRequest) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *DeviceSubRequest) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *DeviceSubRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
i = encodeVarintGenerated(dAtA, i, uint64(m.Count))
i--
dAtA[i] = 0x28
i -= len(m.AllocationMode)
copy(dAtA[i:], m.AllocationMode)
i = encodeVarintGenerated(dAtA, i, uint64(len(m.AllocationMode)))
i--
dAtA[i] = 0x22
if len(m.Selectors) > 0 {
for iNdEx := len(m.Selectors) - 1; iNdEx >= 0; iNdEx-- {
{
size, err := m.Selectors[iNdEx].MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintGenerated(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x1a
}
}
i -= len(m.DeviceClassName)
copy(dAtA[i:], m.DeviceClassName)
i = encodeVarintGenerated(dAtA, i, uint64(len(m.DeviceClassName)))
i--
dAtA[i] = 0x12
i -= len(m.Name)
copy(dAtA[i:], m.Name)
i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))
i--
dAtA[i] = 0xa
return len(dAtA) - i, nil
}
func (m *NetworkDeviceData) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -3133,6 +3234,12 @@ func (m *DeviceRequest) Size() (n int) {
if m.AdminAccess != nil {
n += 2
}
if len(m.FirstAvailable) > 0 {
for _, e := range m.FirstAvailable {
l = e.Size()
n += 1 + l + sovGenerated(uint64(l))
}
}
return n
}
@@ -3169,6 +3276,28 @@ func (m *DeviceSelector) Size() (n int) {
return n
}
func (m *DeviceSubRequest) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
l = len(m.Name)
n += 1 + l + sovGenerated(uint64(l))
l = len(m.DeviceClassName)
n += 1 + l + sovGenerated(uint64(l))
if len(m.Selectors) > 0 {
for _, e := range m.Selectors {
l = e.Size()
n += 1 + l + sovGenerated(uint64(l))
}
}
l = len(m.AllocationMode)
n += 1 + l + sovGenerated(uint64(l))
n += 1 + sovGenerated(uint64(m.Count))
return n
}
func (m *NetworkDeviceData) Size() (n int) {
if m == nil {
return 0
@@ -3669,6 +3798,11 @@ func (this *DeviceRequest) String() string {
repeatedStringForSelectors += strings.Replace(strings.Replace(f.String(), "DeviceSelector", "DeviceSelector", 1), `&`, ``, 1) + ","
}
repeatedStringForSelectors += "}"
repeatedStringForFirstAvailable := "[]DeviceSubRequest{"
for _, f := range this.FirstAvailable {
repeatedStringForFirstAvailable += strings.Replace(strings.Replace(f.String(), "DeviceSubRequest", "DeviceSubRequest", 1), `&`, ``, 1) + ","
}
repeatedStringForFirstAvailable += "}"
s := strings.Join([]string{`&DeviceRequest{`,
`Name:` + fmt.Sprintf("%v", this.Name) + `,`,
`DeviceClassName:` + fmt.Sprintf("%v", this.DeviceClassName) + `,`,
@@ -3676,6 +3810,7 @@ func (this *DeviceRequest) String() string {
`AllocationMode:` + fmt.Sprintf("%v", this.AllocationMode) + `,`,
`Count:` + fmt.Sprintf("%v", this.Count) + `,`,
`AdminAccess:` + valueToStringGenerated(this.AdminAccess) + `,`,
`FirstAvailable:` + repeatedStringForFirstAvailable + `,`,
`}`,
}, "")
return s
@@ -3704,6 +3839,25 @@ func (this *DeviceSelector) String() string {
}, "")
return s
}
func (this *DeviceSubRequest) String() string {
if this == nil {
return "nil"
}
repeatedStringForSelectors := "[]DeviceSelector{"
for _, f := range this.Selectors {
repeatedStringForSelectors += strings.Replace(strings.Replace(f.String(), "DeviceSelector", "DeviceSelector", 1), `&`, ``, 1) + ","
}
repeatedStringForSelectors += "}"
s := strings.Join([]string{`&DeviceSubRequest{`,
`Name:` + fmt.Sprintf("%v", this.Name) + `,`,
`DeviceClassName:` + fmt.Sprintf("%v", this.DeviceClassName) + `,`,
`Selectors:` + repeatedStringForSelectors + `,`,
`AllocationMode:` + fmt.Sprintf("%v", this.AllocationMode) + `,`,
`Count:` + fmt.Sprintf("%v", this.Count) + `,`,
`}`,
}, "")
return s
}
func (this *NetworkDeviceData) String() string {
if this == nil {
return "nil"
@@ -6390,6 +6544,40 @@ func (m *DeviceRequest) Unmarshal(dAtA []byte) error {
}
b := bool(v != 0)
m.AdminAccess = &b
case 7:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field FirstAvailable", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthGenerated
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthGenerated
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.FirstAvailable = append(m.FirstAvailable, DeviceSubRequest{})
if err := m.FirstAvailable[len(m.FirstAvailable)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
@@ -6696,6 +6884,205 @@ func (m *DeviceSelector) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *DeviceSubRequest) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: DeviceSubRequest: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: DeviceSubRequest: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthGenerated
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthGenerated
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Name = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field DeviceClassName", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthGenerated
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthGenerated
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.DeviceClassName = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 3:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Selectors", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthGenerated
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthGenerated
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Selectors = append(m.Selectors, DeviceSelector{})
if err := m.Selectors[len(m.Selectors)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
case 4:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field AllocationMode", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthGenerated
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthGenerated
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.AllocationMode = DeviceAllocationMode(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 5:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Count", wireType)
}
m.Count = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.Count |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
}
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
return ErrInvalidLengthGenerated
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *NetworkDeviceData) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0

View File

@@ -200,6 +200,10 @@ message DeviceAllocationConfiguration {
// Requests lists the names of requests where the configuration applies.
// If empty, its applies to all requests.
//
// References to subrequests must include the name of the main request
// and may include the subrequest using the format <main request>[/<subrequest>]. If just
// the main request is given, the configuration applies to all subrequests.
//
// +optional
// +listType=atomic
repeated string requests = 2;
@@ -294,6 +298,10 @@ message DeviceClaimConfiguration {
// Requests lists the names of requests where the configuration applies.
// If empty, it applies to all requests.
//
// References to subrequests must include the name of the main request
// and may include the subrequest using the format <main request>[/<subrequest>]. If just
// the main request is given, the configuration applies to all subrequests.
//
// +optional
// +listType=atomic
repeated string requests = 1;
@@ -378,6 +386,10 @@ message DeviceConstraint {
// constraint. If this is not specified, this constraint applies to all
// requests in this claim.
//
// References to subrequests must include the name of the main request
// and may include the subrequest using the format <main request>[/<subrequest>]. If just
// the main request is given, the constraint applies to all subrequests.
//
// +optional
// +listType=atomic
repeated string requests = 1;
@@ -403,16 +415,12 @@ message DeviceConstraint {
// DeviceRequest is a request for devices required for a claim.
// This is typically a request for a single resource like a device, but can
// also ask for several identical devices.
//
// A DeviceClassName is currently required. Clients must check that it is
// indeed set. It's absence indicates that something changed in a way that
// is not supported by the client yet, in which case it must refuse to
// handle the request.
message DeviceRequest {
// Name can be used to reference this request in a pod.spec.containers[].resources.claims
// entry and in a constraint of the claim.
//
// Must be a DNS label.
// Must be a DNS label and unique among all DeviceRequests in a
// ResourceClaim.
//
// +required
optional string name = 1;
@@ -421,7 +429,8 @@ message DeviceRequest {
// additional configuration and selectors to be inherited by this
// request.
//
// A class is required. Which classes are available depends on the cluster.
// A class is required if no subrequests are specified in the
// firstAvailable list. Which classes are available depends on the cluster.
//
// Administrators may use this to restrict which devices may get
// requested by only installing classes with selectors for permitted
@@ -429,7 +438,8 @@ message DeviceRequest {
// then administrators can create an empty DeviceClass for users
// to reference.
//
// +required
// +optional
// +oneOf=deviceRequestType
optional string deviceClassName = 2;
// Selectors define criteria which must be satisfied by a specific
@@ -483,13 +493,39 @@ message DeviceRequest {
// +optional
// +featureGate=DRAAdminAccess
optional bool adminAccess = 6;
// FirstAvailable contains subrequests, of which exactly one will be
// satisfied by the scheduler to satisfy this request. It tries to
// satisfy them in the order in which they are listed here. So if
// there are two entries in the list, the schduler will only check
// the second one if it determines that the first one can not be used.
//
// This field may only be set in the entries of DeviceClaim.Requests.
//
// DRA does not yet implement scoring, so the scheduler will
// select the first set of devices that satisfies all the
// requests in the claim. And if the requirements can
// be satisfied on more than one node, other scheduling features
// will determine which node is chosen. This means that the set of
// devices allocated to a claim might not be the optimal set
// available to the cluster. Scoring will be implemented later.
//
// +optional
// +oneOf=deviceRequestType
// +listType=atomic
// +featureGate=DRAPrioritizedList
repeated DeviceSubRequest firstAvailable = 7;
}
// DeviceRequestAllocationResult contains the allocation result for one request.
message DeviceRequestAllocationResult {
// Request is the name of the request in the claim which caused this
// device to be allocated. Multiple devices may have been allocated
// per request.
// device to be allocated. If it references a subrequest in the
// firstAvailable list on a DeviceRequest, this field must
// include both the name of the main request and the subrequest
// using the format <main request>/<subrequest>.
//
// Multiple devices may have been allocated per request.
//
// +required
optional string request = 1;
@@ -541,6 +577,78 @@ message DeviceSelector {
optional CELDeviceSelector cel = 1;
}
// DeviceSubRequest describes a request for device provided in the
// claim.spec.devices.requests[].firstAvailable array. Each
// is typically a request for a single resource like a device, but can
// also ask for several identical devices.
//
// DeviceSubRequest is similar to Request, but doesn't expose the AdminAccess
// or FirstAvailable fields, as those can only be set on the top-level request.
// AdminAccess is not supported for requests with a prioritized list, and
// recursive FirstAvailable fields are not supported.
message DeviceSubRequest {
// Name can be used to reference this subrequest in the list of constraints
// or the list of configurations for the claim. References must use the
// format <main request>/<subrequest>.
//
// Must be a DNS label.
//
// +required
optional string name = 1;
// DeviceClassName references a specific DeviceClass, which can define
// additional configuration and selectors to be inherited by this
// subrequest.
//
// A class is required. Which classes are available depends on the cluster.
//
// Administrators may use this to restrict which devices may get
// requested by only installing classes with selectors for permitted
// devices. If users are free to request anything without restrictions,
// then administrators can create an empty DeviceClass for users
// to reference.
//
// +required
optional string deviceClassName = 2;
// Selectors define criteria which must be satisfied by a specific
// device in order for that device to be considered for this
// subrequest. All selectors must be satisfied for a device to be
// considered.
//
// +optional
// +listType=atomic
repeated DeviceSelector selectors = 3;
// AllocationMode and its related fields define how devices are allocated
// to satisfy this subrequest. Supported values are:
//
// - ExactCount: This request is for a specific number of devices.
// This is the default. The exact number is provided in the
// count field.
//
// - All: This subrequest is for all of the matching devices in a pool.
// Allocation will fail if some devices are already allocated,
// unless adminAccess is requested.
//
// If AlloctionMode is not specified, the default mode is ExactCount. If
// the mode is ExactCount and count is not specified, the default count is
// one. Any other subrequests must specify this field.
//
// More modes may get added in the future. Clients must refuse to handle
// requests with unknown modes.
//
// +optional
optional string allocationMode = 4;
// Count is used only when the count mode is "ExactCount". Must be greater than zero.
// If AllocationMode is ExactCount and this field is not specified, the default is one.
//
// +optional
// +oneOf=AllocationMode
optional int64 count = 5;
}
// NetworkDeviceData provides network-related details for the allocated device.
// This information may be filled by drivers or other components to configure
// or identify the device within a network context.

View File

@@ -83,7 +83,7 @@ func (Device) SwaggerDoc() map[string]string {
var map_DeviceAllocationConfiguration = map[string]string{
"": "DeviceAllocationConfiguration gets embedded in an AllocationResult.",
"source": "Source records whether the configuration comes from a class and thus is not something that a normal user would have been able to set or from a claim.",
"requests": "Requests lists the names of requests where the configuration applies. If empty, its applies to all requests.",
"requests": "Requests lists the names of requests where the configuration applies. If empty, its applies to all requests.\n\nReferences to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.",
}
func (DeviceAllocationConfiguration) SwaggerDoc() map[string]string {
@@ -134,7 +134,7 @@ func (DeviceClaim) SwaggerDoc() map[string]string {
var map_DeviceClaimConfiguration = map[string]string{
"": "DeviceClaimConfiguration is used for configuration parameters in DeviceClaim.",
"requests": "Requests lists the names of requests where the configuration applies. If empty, it applies to all requests.",
"requests": "Requests lists the names of requests where the configuration applies. If empty, it applies to all requests.\n\nReferences to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.",
}
func (DeviceClaimConfiguration) SwaggerDoc() map[string]string {
@@ -190,7 +190,7 @@ func (DeviceConfiguration) SwaggerDoc() map[string]string {
var map_DeviceConstraint = map[string]string{
"": "DeviceConstraint must have exactly one field set besides Requests.",
"requests": "Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim.",
"requests": "Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim.\n\nReferences to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the constraint applies to all subrequests.",
"matchAttribute": "MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices.\n\nFor example, if you specified \"dra.example.com/numa\" (a hypothetical example!), then only devices in the same NUMA node will be chosen. A device which does not have that attribute will not be chosen. All devices should use a value of the same type for this attribute because that is part of its specification, but if one device doesn't, then it also will not be chosen.\n\nMust include the domain qualifier.",
}
@@ -199,13 +199,14 @@ func (DeviceConstraint) SwaggerDoc() map[string]string {
}
var map_DeviceRequest = map[string]string{
"": "DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices.\n\nA DeviceClassName is currently required. Clients must check that it is indeed set. It's absence indicates that something changed in a way that is not supported by the client yet, in which case it must refuse to handle the request.",
"name": "Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim.\n\nMust be a DNS label.",
"deviceClassName": "DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.\n\nA class is required. Which classes are available depends on the cluster.\n\nAdministrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.",
"": "DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices.",
"name": "Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim.\n\nMust be a DNS label and unique among all DeviceRequests in a ResourceClaim.",
"deviceClassName": "DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.\n\nA class is required if no subrequests are specified in the firstAvailable list. Which classes are available depends on the cluster.\n\nAdministrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.",
"selectors": "Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this request. All selectors must be satisfied for a device to be considered.",
"allocationMode": "AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are:\n\n- ExactCount: This request is for a specific number of devices.\n This is the default. The exact number is provided in the\n count field.\n\n- All: This request is for all of the matching devices in a pool.\n At least one device must exist on the node for the allocation to succeed.\n Allocation will fail if some devices are already allocated,\n unless adminAccess is requested.\n\nIf AllocationMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other requests must specify this field.\n\nMore modes may get added in the future. Clients must refuse to handle requests with unknown modes.",
"count": "Count is used only when the count mode is \"ExactCount\". Must be greater than zero. If AllocationMode is ExactCount and this field is not specified, the default is one.",
"adminAccess": "AdminAccess indicates that this is a claim for administrative access to the device(s). Claims with AdminAccess are expected to be used for monitoring or other management services for a device. They ignore all ordinary claims to the device with respect to access modes and any resource allocations.\n\nThis is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled.",
"firstAvailable": "FirstAvailable contains subrequests, of which exactly one will be satisfied by the scheduler to satisfy this request. It tries to satisfy them in the order in which they are listed here. So if there are two entries in the list, the schduler will only check the second one if it determines that the first one can not be used.\n\nThis field may only be set in the entries of DeviceClaim.Requests.\n\nDRA does not yet implement scoring, so the scheduler will select the first set of devices that satisfies all the requests in the claim. And if the requirements can be satisfied on more than one node, other scheduling features will determine which node is chosen. This means that the set of devices allocated to a claim might not be the optimal set available to the cluster. Scoring will be implemented later.",
}
func (DeviceRequest) SwaggerDoc() map[string]string {
@@ -214,7 +215,7 @@ func (DeviceRequest) SwaggerDoc() map[string]string {
var map_DeviceRequestAllocationResult = map[string]string{
"": "DeviceRequestAllocationResult contains the allocation result for one request.",
"request": "Request is the name of the request in the claim which caused this device to be allocated. Multiple devices may have been allocated per request.",
"request": "Request is the name of the request in the claim which caused this device to be allocated. If it references a subrequest in the firstAvailable list on a DeviceRequest, this field must include both the name of the main request and the subrequest using the format <main request>/<subrequest>.\n\nMultiple devices may have been allocated per request.",
"driver": "Driver specifies the name of the DRA driver whose kubelet plugin should be invoked to process the allocation once the claim is needed on a node.\n\nMust be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.",
"pool": "This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`).\n\nMust not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.",
"device": "Device references one device instance via its name in the driver's resource pool. It must be a DNS label.",
@@ -234,6 +235,19 @@ func (DeviceSelector) SwaggerDoc() map[string]string {
return map_DeviceSelector
}
var map_DeviceSubRequest = map[string]string{
"": "DeviceSubRequest describes a request for device provided in the claim.spec.devices.requests[].firstAvailable array. Each is typically a request for a single resource like a device, but can also ask for several identical devices.\n\nDeviceSubRequest is similar to Request, but doesn't expose the AdminAccess or FirstAvailable fields, as those can only be set on the top-level request. AdminAccess is not supported for requests with a prioritized list, and recursive FirstAvailable fields are not supported.",
"name": "Name can be used to reference this subrequest in the list of constraints or the list of configurations for the claim. References must use the format <main request>/<subrequest>.\n\nMust be a DNS label.",
"deviceClassName": "DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest.\n\nA class is required. Which classes are available depends on the cluster.\n\nAdministrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.",
"selectors": "Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this subrequest. All selectors must be satisfied for a device to be considered.",
"allocationMode": "AllocationMode and its related fields define how devices are allocated to satisfy this subrequest. Supported values are:\n\n- ExactCount: This request is for a specific number of devices.\n This is the default. The exact number is provided in the\n count field.\n\n- All: This subrequest is for all of the matching devices in a pool.\n Allocation will fail if some devices are already allocated,\n unless adminAccess is requested.\n\nIf AlloctionMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other subrequests must specify this field.\n\nMore modes may get added in the future. Clients must refuse to handle requests with unknown modes.",
"count": "Count is used only when the count mode is \"ExactCount\". Must be greater than zero. If AllocationMode is ExactCount and this field is not specified, the default is one.",
}
func (DeviceSubRequest) SwaggerDoc() map[string]string {
return map_DeviceSubRequest
}
var map_NetworkDeviceData = map[string]string{
"": "NetworkDeviceData provides network-related details for the allocated device. This information may be filled by drivers or other components to configure or identify the device within a network context.",
"interfaceName": "InterfaceName specifies the name of the network interface associated with the allocated device. This might be the name of a physical or virtual network interface being configured in the pod.\n\nMust not be longer than 256 characters.",

View File

@@ -482,6 +482,13 @@ func (in *DeviceRequest) DeepCopyInto(out *DeviceRequest) {
*out = new(bool)
**out = **in
}
if in.FirstAvailable != nil {
in, out := &in.FirstAvailable, &out.FirstAvailable
*out = make([]DeviceSubRequest, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
return
}
@@ -537,6 +544,29 @@ func (in *DeviceSelector) DeepCopy() *DeviceSelector {
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *DeviceSubRequest) DeepCopyInto(out *DeviceSubRequest) {
*out = *in
if in.Selectors != nil {
in, out := &in.Selectors, &out.Selectors
*out = make([]DeviceSelector, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceSubRequest.
func (in *DeviceSubRequest) DeepCopy() *DeviceSubRequest {
if in == nil {
return nil
}
out := new(DeviceSubRequest)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *NetworkDeviceData) DeepCopyInto(out *NetworkDeviceData) {
*out = *in

View File

@@ -58,7 +58,22 @@
],
"allocationMode": "allocationModeValue",
"count": 5,
"adminAccess": true
"adminAccess": true,
"firstAvailable": [
{
"name": "nameValue",
"deviceClassName": "deviceClassNameValue",
"selectors": [
{
"cel": {
"expression": "expressionValue"
}
}
],
"allocationMode": "allocationModeValue",
"count": 5
}
]
}
],
"constraints": [

View File

@@ -55,6 +55,14 @@ spec:
allocationMode: allocationModeValue
count: 5
deviceClassName: deviceClassNameValue
firstAvailable:
- allocationMode: allocationModeValue
count: 5
deviceClassName: deviceClassNameValue
name: nameValue
selectors:
- cel:
expression: expressionValue
name: nameValue
selectors:
- cel:

View File

@@ -101,7 +101,22 @@
],
"allocationMode": "allocationModeValue",
"count": 5,
"adminAccess": true
"adminAccess": true,
"firstAvailable": [
{
"name": "nameValue",
"deviceClassName": "deviceClassNameValue",
"selectors": [
{
"cel": {
"expression": "expressionValue"
}
}
],
"allocationMode": "allocationModeValue",
"count": 5
}
]
}
],
"constraints": [

View File

@@ -88,6 +88,14 @@ spec:
allocationMode: allocationModeValue
count: 5
deviceClassName: deviceClassNameValue
firstAvailable:
- allocationMode: allocationModeValue
count: 5
deviceClassName: deviceClassNameValue
name: nameValue
selectors:
- cel:
expression: expressionValue
name: nameValue
selectors:
- cel:

View File

@@ -58,7 +58,22 @@
],
"allocationMode": "allocationModeValue",
"count": 5,
"adminAccess": true
"adminAccess": true,
"firstAvailable": [
{
"name": "nameValue",
"deviceClassName": "deviceClassNameValue",
"selectors": [
{
"cel": {
"expression": "expressionValue"
}
}
],
"allocationMode": "allocationModeValue",
"count": 5
}
]
}
],
"constraints": [

View File

@@ -55,6 +55,14 @@ spec:
allocationMode: allocationModeValue
count: 5
deviceClassName: deviceClassNameValue
firstAvailable:
- allocationMode: allocationModeValue
count: 5
deviceClassName: deviceClassNameValue
name: nameValue
selectors:
- cel:
expression: expressionValue
name: nameValue
selectors:
- cel:

View File

@@ -101,7 +101,22 @@
],
"allocationMode": "allocationModeValue",
"count": 5,
"adminAccess": true
"adminAccess": true,
"firstAvailable": [
{
"name": "nameValue",
"deviceClassName": "deviceClassNameValue",
"selectors": [
{
"cel": {
"expression": "expressionValue"
}
}
],
"allocationMode": "allocationModeValue",
"count": 5
}
]
}
],
"constraints": [

View File

@@ -88,6 +88,14 @@ spec:
allocationMode: allocationModeValue
count: 5
deviceClassName: deviceClassNameValue
firstAvailable:
- allocationMode: allocationModeValue
count: 5
deviceClassName: deviceClassNameValue
name: nameValue
selectors:
- cel:
expression: expressionValue
name: nameValue
selectors:
- cel:

View File

@@ -12708,6 +12708,12 @@ var schemaYAML = typed.YAMLObject(`types:
type:
scalar: string
default: ""
- name: firstAvailable
type:
list:
elementType:
namedType: io.k8s.api.resource.v1alpha3.DeviceSubRequest
elementRelationship: atomic
- name: name
type:
scalar: string
@@ -12746,6 +12752,29 @@ var schemaYAML = typed.YAMLObject(`types:
- name: cel
type:
namedType: io.k8s.api.resource.v1alpha3.CELDeviceSelector
- name: io.k8s.api.resource.v1alpha3.DeviceSubRequest
map:
fields:
- name: allocationMode
type:
scalar: string
- name: count
type:
scalar: numeric
- name: deviceClassName
type:
scalar: string
default: ""
- name: name
type:
scalar: string
default: ""
- name: selectors
type:
list:
elementType:
namedType: io.k8s.api.resource.v1alpha3.DeviceSelector
elementRelationship: atomic
- name: io.k8s.api.resource.v1alpha3.NetworkDeviceData
map:
fields:
@@ -13147,6 +13176,12 @@ var schemaYAML = typed.YAMLObject(`types:
type:
scalar: string
default: ""
- name: firstAvailable
type:
list:
elementType:
namedType: io.k8s.api.resource.v1beta1.DeviceSubRequest
elementRelationship: atomic
- name: name
type:
scalar: string
@@ -13185,6 +13220,29 @@ var schemaYAML = typed.YAMLObject(`types:
- name: cel
type:
namedType: io.k8s.api.resource.v1beta1.CELDeviceSelector
- name: io.k8s.api.resource.v1beta1.DeviceSubRequest
map:
fields:
- name: allocationMode
type:
scalar: string
- name: count
type:
scalar: numeric
- name: deviceClassName
type:
scalar: string
default: ""
- name: name
type:
scalar: string
default: ""
- name: selectors
type:
list:
elementType:
namedType: io.k8s.api.resource.v1beta1.DeviceSelector
elementRelationship: atomic
- name: io.k8s.api.resource.v1beta1.NetworkDeviceData
map:
fields:

View File

@@ -31,6 +31,7 @@ type DeviceRequestApplyConfiguration struct {
AllocationMode *resourcev1alpha3.DeviceAllocationMode `json:"allocationMode,omitempty"`
Count *int64 `json:"count,omitempty"`
AdminAccess *bool `json:"adminAccess,omitempty"`
FirstAvailable []DeviceSubRequestApplyConfiguration `json:"firstAvailable,omitempty"`
}
// DeviceRequestApplyConfiguration constructs a declarative configuration of the DeviceRequest type for use with
@@ -91,3 +92,16 @@ func (b *DeviceRequestApplyConfiguration) WithAdminAccess(value bool) *DeviceReq
b.AdminAccess = &value
return b
}
// WithFirstAvailable adds the given value to the FirstAvailable field in the declarative configuration
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
// If called multiple times, values provided by each call will be appended to the FirstAvailable field.
func (b *DeviceRequestApplyConfiguration) WithFirstAvailable(values ...*DeviceSubRequestApplyConfiguration) *DeviceRequestApplyConfiguration {
for i := range values {
if values[i] == nil {
panic("nil value passed to WithFirstAvailable")
}
b.FirstAvailable = append(b.FirstAvailable, *values[i])
}
return b
}

View File

@@ -0,0 +1,84 @@
/*
Copyright The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// Code generated by applyconfiguration-gen. DO NOT EDIT.
package v1alpha3
import (
resourcev1alpha3 "k8s.io/api/resource/v1alpha3"
)
// DeviceSubRequestApplyConfiguration represents a declarative configuration of the DeviceSubRequest type for use
// with apply.
type DeviceSubRequestApplyConfiguration struct {
Name *string `json:"name,omitempty"`
DeviceClassName *string `json:"deviceClassName,omitempty"`
Selectors []DeviceSelectorApplyConfiguration `json:"selectors,omitempty"`
AllocationMode *resourcev1alpha3.DeviceAllocationMode `json:"allocationMode,omitempty"`
Count *int64 `json:"count,omitempty"`
}
// DeviceSubRequestApplyConfiguration constructs a declarative configuration of the DeviceSubRequest type for use with
// apply.
func DeviceSubRequest() *DeviceSubRequestApplyConfiguration {
return &DeviceSubRequestApplyConfiguration{}
}
// WithName sets the Name field in the declarative configuration to the given value
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
// If called multiple times, the Name field is set to the value of the last call.
func (b *DeviceSubRequestApplyConfiguration) WithName(value string) *DeviceSubRequestApplyConfiguration {
b.Name = &value
return b
}
// WithDeviceClassName sets the DeviceClassName field in the declarative configuration to the given value
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
// If called multiple times, the DeviceClassName field is set to the value of the last call.
func (b *DeviceSubRequestApplyConfiguration) WithDeviceClassName(value string) *DeviceSubRequestApplyConfiguration {
b.DeviceClassName = &value
return b
}
// WithSelectors adds the given value to the Selectors field in the declarative configuration
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
// If called multiple times, values provided by each call will be appended to the Selectors field.
func (b *DeviceSubRequestApplyConfiguration) WithSelectors(values ...*DeviceSelectorApplyConfiguration) *DeviceSubRequestApplyConfiguration {
for i := range values {
if values[i] == nil {
panic("nil value passed to WithSelectors")
}
b.Selectors = append(b.Selectors, *values[i])
}
return b
}
// WithAllocationMode sets the AllocationMode field in the declarative configuration to the given value
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
// If called multiple times, the AllocationMode field is set to the value of the last call.
func (b *DeviceSubRequestApplyConfiguration) WithAllocationMode(value resourcev1alpha3.DeviceAllocationMode) *DeviceSubRequestApplyConfiguration {
b.AllocationMode = &value
return b
}
// WithCount sets the Count field in the declarative configuration to the given value
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
// If called multiple times, the Count field is set to the value of the last call.
func (b *DeviceSubRequestApplyConfiguration) WithCount(value int64) *DeviceSubRequestApplyConfiguration {
b.Count = &value
return b
}

View File

@@ -31,6 +31,7 @@ type DeviceRequestApplyConfiguration struct {
AllocationMode *resourcev1beta1.DeviceAllocationMode `json:"allocationMode,omitempty"`
Count *int64 `json:"count,omitempty"`
AdminAccess *bool `json:"adminAccess,omitempty"`
FirstAvailable []DeviceSubRequestApplyConfiguration `json:"firstAvailable,omitempty"`
}
// DeviceRequestApplyConfiguration constructs a declarative configuration of the DeviceRequest type for use with
@@ -91,3 +92,16 @@ func (b *DeviceRequestApplyConfiguration) WithAdminAccess(value bool) *DeviceReq
b.AdminAccess = &value
return b
}
// WithFirstAvailable adds the given value to the FirstAvailable field in the declarative configuration
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
// If called multiple times, values provided by each call will be appended to the FirstAvailable field.
func (b *DeviceRequestApplyConfiguration) WithFirstAvailable(values ...*DeviceSubRequestApplyConfiguration) *DeviceRequestApplyConfiguration {
for i := range values {
if values[i] == nil {
panic("nil value passed to WithFirstAvailable")
}
b.FirstAvailable = append(b.FirstAvailable, *values[i])
}
return b
}

View File

@@ -0,0 +1,84 @@
/*
Copyright The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// Code generated by applyconfiguration-gen. DO NOT EDIT.
package v1beta1
import (
resourcev1beta1 "k8s.io/api/resource/v1beta1"
)
// DeviceSubRequestApplyConfiguration represents a declarative configuration of the DeviceSubRequest type for use
// with apply.
type DeviceSubRequestApplyConfiguration struct {
Name *string `json:"name,omitempty"`
DeviceClassName *string `json:"deviceClassName,omitempty"`
Selectors []DeviceSelectorApplyConfiguration `json:"selectors,omitempty"`
AllocationMode *resourcev1beta1.DeviceAllocationMode `json:"allocationMode,omitempty"`
Count *int64 `json:"count,omitempty"`
}
// DeviceSubRequestApplyConfiguration constructs a declarative configuration of the DeviceSubRequest type for use with
// apply.
func DeviceSubRequest() *DeviceSubRequestApplyConfiguration {
return &DeviceSubRequestApplyConfiguration{}
}
// WithName sets the Name field in the declarative configuration to the given value
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
// If called multiple times, the Name field is set to the value of the last call.
func (b *DeviceSubRequestApplyConfiguration) WithName(value string) *DeviceSubRequestApplyConfiguration {
b.Name = &value
return b
}
// WithDeviceClassName sets the DeviceClassName field in the declarative configuration to the given value
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
// If called multiple times, the DeviceClassName field is set to the value of the last call.
func (b *DeviceSubRequestApplyConfiguration) WithDeviceClassName(value string) *DeviceSubRequestApplyConfiguration {
b.DeviceClassName = &value
return b
}
// WithSelectors adds the given value to the Selectors field in the declarative configuration
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
// If called multiple times, values provided by each call will be appended to the Selectors field.
func (b *DeviceSubRequestApplyConfiguration) WithSelectors(values ...*DeviceSelectorApplyConfiguration) *DeviceSubRequestApplyConfiguration {
for i := range values {
if values[i] == nil {
panic("nil value passed to WithSelectors")
}
b.Selectors = append(b.Selectors, *values[i])
}
return b
}
// WithAllocationMode sets the AllocationMode field in the declarative configuration to the given value
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
// If called multiple times, the AllocationMode field is set to the value of the last call.
func (b *DeviceSubRequestApplyConfiguration) WithAllocationMode(value resourcev1beta1.DeviceAllocationMode) *DeviceSubRequestApplyConfiguration {
b.AllocationMode = &value
return b
}
// WithCount sets the Count field in the declarative configuration to the given value
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
// If called multiple times, the Count field is set to the value of the last call.
func (b *DeviceSubRequestApplyConfiguration) WithCount(value int64) *DeviceSubRequestApplyConfiguration {
b.Count = &value
return b
}

View File

@@ -1634,6 +1634,8 @@ func ForKind(kind schema.GroupVersionKind) interface{} {
return &resourcev1alpha3.DeviceRequestAllocationResultApplyConfiguration{}
case v1alpha3.SchemeGroupVersion.WithKind("DeviceSelector"):
return &resourcev1alpha3.DeviceSelectorApplyConfiguration{}
case v1alpha3.SchemeGroupVersion.WithKind("DeviceSubRequest"):
return &resourcev1alpha3.DeviceSubRequestApplyConfiguration{}
case v1alpha3.SchemeGroupVersion.WithKind("NetworkDeviceData"):
return &resourcev1alpha3.NetworkDeviceDataApplyConfiguration{}
case v1alpha3.SchemeGroupVersion.WithKind("OpaqueDeviceConfiguration"):
@@ -1696,6 +1698,8 @@ func ForKind(kind schema.GroupVersionKind) interface{} {
return &applyconfigurationsresourcev1beta1.DeviceRequestAllocationResultApplyConfiguration{}
case resourcev1beta1.SchemeGroupVersion.WithKind("DeviceSelector"):
return &applyconfigurationsresourcev1beta1.DeviceSelectorApplyConfiguration{}
case resourcev1beta1.SchemeGroupVersion.WithKind("DeviceSubRequest"):
return &applyconfigurationsresourcev1beta1.DeviceSubRequestApplyConfiguration{}
case resourcev1beta1.SchemeGroupVersion.WithKind("NetworkDeviceData"):
return &applyconfigurationsresourcev1beta1.NetworkDeviceDataApplyConfiguration{}
case resourcev1beta1.SchemeGroupVersion.WithKind("OpaqueDeviceConfiguration"):

View File

@@ -426,6 +426,12 @@
lockToDefault: false
preRelease: Alpha
version: "1.32"
- name: DRAPrioritizedList
versionedSpecs:
- default: false
lockToDefault: false
preRelease: Alpha
version: "1.33"
- name: DRAResourceClaimDeviceStatus
versionedSpecs:
- default: false