# DeviceClass

> DeviceClass 是由供应商或管理员提供的资源，包含设备配置和选择算符。

---

LLMS index: [llms.txt](/llms.txt)

---

<!--
api_metadata:
  apiVersion: "resource.k8s.io/v1"
  import: "k8s.io/api/resource/v1"
  kind: "DeviceClass"
content_type: "api_reference"
description: "DeviceClass is a vendor- or admin-provided resource that contains device configuration and selectors."
title: "DeviceClass"
weight: 2
auto_generated: true
-->

`apiVersion: resource.k8s.io/v1`

`import "k8s.io/api/resource/v1"`

## DeviceClass {#DeviceClass}

<!--
DeviceClass is a vendor- or admin-provided resource that contains device configuration and selectors. It can be referenced in the device requests of a claim to apply these presets. Cluster scoped.
-->
DeviceClass 是由供应商或管理员提供的资源，包含设备配置和选择算符。
它可以在申领的设备请求中被引用，以应用预设值。作用域为集群范围。

<hr>

- **apiVersion**: resource.k8s.io/v1

- **kind**: DeviceClass

<!--
- **metadata** (<a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-definitions/object-meta/#ObjectMeta">ObjectMeta</a>)

  Standard object metadata
-->
- **metadata** (<a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-definitions/object-meta/#ObjectMeta">ObjectMeta</a>)

  标准的对象元数据。

<!--
- **spec** (<a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/extend-resources/device-class-v1/#DeviceClassSpec">DeviceClassSpec</a>), required

  Spec defines what can be allocated and how to configure it.
  
  This is mutable. Consumers have to be prepared for classes changing at any time, either because they get updated or replaced. Claim allocations are done once based on whatever was set in classes at the time of allocation.
  
  Changing the spec automatically increments the metadata.generation number.
-->
- **spec** (<a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/extend-resources/device-class-v1/#DeviceClassSpec">DeviceClassSpec</a>)，必需

  `spec` 定义可被分配的资源以及如何配置这类资源。

  此字段是可变更的。消费者必须准备好应对随时会变更的类，变更的原因可能是被更新或被替换。
  申领分配是基于分配之时类中所设置的内容而确定的。

  变更 `spec` 会让 `metadata.generation` 编号自动递增。

## DeviceClassSpec {#DeviceClassSpec}

<!--
DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it.
-->
DeviceClassSpec 在 DeviceClass 中用于定义可被分配的资源以及如何配置这类资源。

<hr>

<!--
- **config** ([]DeviceClassConfiguration)

  *Atomic: will be replaced during a merge*

  Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver.

  They are passed to the driver, but are not considered while allocating the claim.

  <a name="DeviceClassConfiguration"></a>
  *DeviceClassConfiguration is used in DeviceClass.*
-->
- **config** ([]DeviceClassConfiguration)

  **原子：将在合并期间被替换**

  `config` 定义适用于通过此类申领的每个设备的配置参数。
  某些类可能会由多个驱动所满足，因此供应商配置的每个实例仅适用于一个驱动。

  这些配置参数被传递给驱动，但在分配申领时不考虑这些配置参数。

  <a name="DeviceClassConfiguration"></a>
  **DeviceClassConfiguration 在 DeviceClass 中使用。**

  <!--
  - **config.opaque** (OpaqueDeviceConfiguration)

    Opaque provides driver-specific configuration parameters.

    <a name="OpaqueDeviceConfiguration"></a>
    *OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor.*
  -->

  - **config.opaque** (OpaqueDeviceConfiguration)

    `opaque` 提供特定于驱动的配置参数。

    <a name="OpaqueDeviceConfiguration"></a>
    **OpaqueDeviceConfiguration 以驱动供应商所定义的格式提供驱动的配置参数。**

    <!--
    - **config.opaque.driver** (string), required

      Driver is used to determine which kubelet plugin needs to be passed these configuration parameters.

      An admission policy provided by the driver developer could use this to decide whether it needs to validate them.

      Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. It should use only lower case characters.
    -->

    - **config.opaque.driver** (string)，必需

      `driver` 用于确定需要将这些配置参数传递给哪个 kubelet 插件。

      驱动开发者所提供的准入策略可以使用此字段来决定是否需要校验这些参数。

      必须是一个 DNS 子域，并且应以驱动供应商拥有的 DNS 域结尾。
      应当只使用小写字母。

    <!--
    - **config.opaque.parameters** (RawExtension), required

      Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions.

      The length of the raw data must be smaller or equal to 10 Ki.

      <a name="RawExtension"></a>
      *RawExtension is used to hold extensions in external versions.

      To use this, make a field which has RawExtension as its type in your external, versioned struct, and Object in your internal struct. You also need to register your various plugin types.
    -->

    - **config.opaque.parameters** (RawExtension)，必需

      `parameters` 可以包含任意数据。处理校验和版本控制是驱动开发者的责任。
      通常这包括自我标识和版本信息（对 Kubernetes 而言即 "kind" + "apiVersion"），并在不同版本之间进行转换。

      原始数据的长度必须小于或等于 10 Ki。

      <a name="RawExtension"></a>
      **RawExtension 用于以外部版本来保存扩展数据。**

      要使用它，请在外部、版本化的结构中生成一个字段，以 RawExtension 作为其类型，在内部结构中以 Object 作为其类型。
      你还需要注册你的各个插件类型。

      <!--
      // Internal package:
      -->

      // 内部包：

          ```go  
          type MyAPIObject struct {
            runtime.TypeMeta `json:",inline"`
            MyPlugin runtime.Object `json:"myPlugin"`
          }

          type PluginA struct {
            AOption string `json:"aOption"`
          }
          ```

      <!--
      // External package:
      -->

      // 外部包：

          ```go
          type MyAPIObject struct {
            runtime.TypeMeta `json:",inline"`
            MyPlugin runtime.RawExtension `json:"myPlugin"`
          }
        
          type PluginA struct {
            AOption string `json:"aOption"`
          }
          ```

      <!--
      // On the wire, the JSON will look something like this:
      -->

      // 在网络上，JSON 看起来像这样：

          ```json
          {
            "kind": "MyAPIObject",
            "apiVersion": "v1",
            "myPlugin": {
              "kind": "PluginA",
              "aOption": "foo",
            },
          }
          ```

      <!--
      So what happens? Decode first uses json or yaml to unmarshal the serialized data into your external MyAPIObject. That causes the raw JSON to be stored, but not unpacked. The next step is to copy (using pkg/conversion) into the internal struct. The runtime package's DefaultScheme has conversion functions installed which will unpack the JSON stored in RawExtension, turning it into the correct object type, and storing it in the Object. (TODO: In the case where the object is of an unknown type, a runtime.Unknown object will be created and stored.)*
      -->

      那么会发生什么？解码首先使用 JSON 或 YAML 将序列化数据解组到你的外部 MyAPIObject 中。
      这会导致原始 JSON 被存储下来，但不会被解包。下一步是复制（使用 `pkg/conversion`）到内部结构中。
      `runtime` 包的 `DefaultScheme` 安装了转换函数，它将解析存储在 RawExtension 中的 JSON，
      将其转换为正确的对象类型，并将其存储在 Object 中。
      （TODO：如果对象是未知类型，将创建并存储一个 `runtime.Unknown` 对象。）

<!--
- **extendedResourceName** (string)

  ExtendedResourceName is the extended resource name for the devices of this class. The devices of this class can be used to satisfy a pod's extended resource requests. It has the same format as the name of a pod's extended resource. It should be unique among all the device classes in a cluster. If two device classes have the same name, then the class created later is picked to satisfy a pod's extended resource requests. If two classes are created at the same time, then the name of the class lexicographically sorted first is picked.

  This is an beta field.
-->
- **extendedResourceName** (string)

  `extendedResourceName` 是此类设备的扩展资源名称。
  此类中的设备可用于满足 Pod 的扩展资源请求。其格式与 Pod 扩展资源的名称相同。
  在一个集群中，它应当是唯一的。如果两个设备类具有相同的名称，则后创建的设备类将用于满足 Pod 的扩展资源请求。
  如果两个类被同时创建，则选择名称按字母排序后位于前面的类。

  这是 Beta 字段。

<!--
- **selectors** ([]DeviceSelector)

  *Atomic: will be replaced during a merge*

  Each selector must be satisfied by a device which is claimed via this class.

  <a name="DeviceSelector"></a>
  *DeviceSelector must have exactly one field set.*
-->
- **selectors** ([]DeviceSelector)

  **原子：将在合并期间被替换**

  通过此类所申领的设备必须满足这里的每个选择算符。

  <a name="DeviceSelector"></a>
  **DeviceSelector 中必须设置且仅设置一个字段。**

  <!--
  - **selectors.cel** (CELDeviceSelector)

    CEL contains a CEL expression for selecting a device.

    <a name="CELDeviceSelector"></a>
    *CELDeviceSelector contains a CEL expression for selecting a device.*
  -->

  - **selectors.cel** (CELDeviceSelector)

    `cel` 包含用于选择设备的 CEL 表达式。

    <a name="CELDeviceSelector"></a>
    **CELDeviceSelector 包含用于选择设备的 CEL 表达式。**

    <!--
    - **selectors.cel.expression** (string), required

      Expression is a CEL expression which evaluates a single device. It must evaluate to true when the device under consideration satisfies the desired criteria, and false when it does not. Any other result is an error and causes allocation of devices to abort.
    -->

    - **selectors.cel.expression** (string)，必需

      `expression` 是一个 CEL 表达式，用于评估单个设备。
      当被考虑的设备满足所需条件时，表达式的求值结果必须为 `true`；当不满足时，结果应为 `false`。
      任何其他结果都是错误，会导致设备分配中止。

      <!--
      The expression's input is an object named "device", which carries the following properties:
       - driver (string): the name of the driver which defines this device.
       - attributes (map[string]object): the device's attributes, grouped by prefix
         (e.g. device.attributes["dra.example.com"] evaluates to an object with all
         of the attributes which were prefixed by "dra.example.com".
       - capacity (map[string]object): the device's capacities, grouped by prefix.
       - allowMultipleAllocations (bool): the allowMultipleAllocations property of the device
         (v1.34+ with the DRAConsumableCapacity feature enabled).

      Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields:
      -->

      表达式的输入是一个名为 "device" 的对象，具有以下属性：

      - driver (string)：定义此设备的驱动的名称。
      - attributes (map[string]object)：设备的属性，按前缀分组
        （例如，`device.attributes["dra.example.com"]` 评估为一个对象，包含所有以 "dra.example.com" 为前缀的属性。）
      - capacity (map[string]object)：设备的容量，按前缀分组。
      - allowMultipleAllocations (bool)：设备的 allowMultipleAllocations 属性
        （在 v1.34+ 中随 DRAConsumableCapacity 特性启用）。

      示例：考虑一个驱动为 "dra.example.com" 的设备，它暴露两个名为
      "model" 和 "ext.example.com/family" 的属性，
      并且暴露一个名为 "modules" 的容量。此表达式的输入将具有以下字段：

      ```
      device.driver
      device.attributes["dra.example.com"].model
      device.attributes["ext.example.com"].family
      device.capacity["dra.example.com"].modules
      ```

      <!--
      The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers.

      The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity.
      -->

      `device.driver` 字段可用于检查特定驱动，既可以作为高层次的前提条件（即你只想考虑来自此驱动的设备），
      也可以作为考虑来自不同驱动的设备的多子句表达式的一部分。
      
      `attribute` 中每个元素的值类型由设备定义，编写这些表达式的用户必须查阅其特定驱动的文档。
      `capacity` 中元素的值类型为 Quantity。

      <!--
      If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort.

      A robust expression should check for the existence of attributes before referencing them.
      
      For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example:
      -->

      如果在 `device.attributes` 或 `device.capacity` 中使用未知前缀进行查找，
      将返回一个空映射。对未知字段的任何引用将导致评估错误和分配中止。

      一个健壮的表达式应在引用属性之前检查其是否存在。
          
      为了方便使用，`cel.bind()` 函数被启用，此函数可用于简化访问同一域的多个属性的表达式。例如：

      ```
      cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool)
      ```
  
      <!--
      When the DRAListTypeAttributes feature gate is enabled, the includes() helper is available and it can work for both scalar and list-type attributes. It was introduced to support smooth migration from scalar attributes to list-type attributes while keeping CEL expressions simple. For example:

          device.attributes["dra.example.com"].models.includes("some-model")
      -->
  
      启用 DRAListTypeAttributes 特性门控后，`includes()` 辅助函数即可使用，
      并且适用于标量属性和列表类型属性。引入此特性是为了支持从标量属性到列表类型属性的平滑迁移，
      同时保持 CEL 表达式的简洁性。例如：

          `device.attributes["dra.example.com"].models.includes("some-model")`

      <!--
      The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps.
      -->

      表达式的长度必须小于或等于 10 Ki。根据估计的逻辑步骤数，其评估成本也受到限制。

## DeviceClassList {#DeviceClassList}

<!--
DeviceClassList is a collection of classes.
-->
DeviceClassList 是类的集合。

<hr>

- **apiVersion**: resource.k8s.io/v1

- **kind**: DeviceClassList

<!--
- **metadata** (<a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-definitions/list-meta/#ListMeta">ListMeta</a>)

  Standard list metadata

- **items** ([]<a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/extend-resources/device-class-v1/#DeviceClass">DeviceClass</a>), required

  Items is the list of resource classes.
-->
- **metadata** (<a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-definitions/list-meta/#ListMeta">ListMeta</a>)

  标准的列表元数据。

- **items** ([]<a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/extend-resources/device-class-v1/#DeviceClass">DeviceClass</a>)，必需

  `items` 是资源类的列表。

<!--
## Operations {#Operations}
-->
## 操作 {#Operations}

<hr>

<!--
### `get` read the specified DeviceClass

#### HTTP Request
-->
### `get` 读取指定的 DeviceClass

#### HTTP 请求

GET /apis/resource.k8s.io/v1/deviceclasses/{name}

<!--
#### Parameters

- **name** (*in path*): string, required

  name of the DeviceClass

- **pretty** (*in query*): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#pretty">pretty</a>
-->
#### 参数

- **name**（**路径参数**）：string，必需

  DeviceClass 的名称。

- **pretty**（**查询参数**）：string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#pretty">pretty</a>

<!--
#### Response
-->
#### 响应

200 (<a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/extend-resources/device-class-v1/#DeviceClass">DeviceClass</a>): OK

401: Unauthorized

<!--
### `list` list or watch objects of kind DeviceClass

#### HTTP Request
-->
### `list` 列举或监视 DeviceClass 类别的对象

#### HTTP 请求

GET /apis/resource.k8s.io/v1/deviceclasses

<!--
#### Parameters
-->
#### 参数

<!--
- **allowWatchBookmarks** (*in query*): boolean

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#allowWatchBookmarks">allowWatchBookmarks</a>

- **continue** (*in query*): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#continue">continue</a>

- **fieldSelector** (*in query*): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#fieldSelector">fieldSelector</a>

- **labelSelector** (*in query*): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#labelSelector">labelSelector</a>

- **limit** (*in query*): integer

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#limit">limit</a>

- **pretty** (*in query*): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#pretty">pretty</a>

- **resourceVersion** (*in query*): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#resourceVersion">resourceVersion</a>

- **resourceVersionMatch** (*in query*): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#resourceVersionMatch">resourceVersionMatch</a>

- **sendInitialEvents** (*in query*): boolean

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#sendInitialEvents">sendInitialEvents</a>

- **shardSelector** (*in query*): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#shardSelector">shardSelector</a>

- **timeoutSeconds** (*in query*): integer

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#timeoutSeconds">timeoutSeconds</a>

- **watch** (*in query*): boolean

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#watch">watch</a>
-->
- **allowWatchBookmarks** (**查询参数**): boolean

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#allowWatchBookmarks">allowWatchBookmarks</a>

- **continue** (**查询参数**): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#continue">continue</a>

- **fieldSelector** (**查询参数**): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#fieldSelector">fieldSelector</a>

- **labelSelector** (**查询参数**): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#labelSelector">labelSelector</a>

- **limit** (**查询参数**): integer

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#limit">limit</a>

- **pretty** (**查询参数**): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#pretty">pretty</a>

- **resourceVersion** (**查询参数**): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#resourceVersion">resourceVersion</a>

- **resourceVersionMatch** (**查询参数**): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#resourceVersionMatch">resourceVersionMatch</a>

- **sendInitialEvents** (**查询参数**): boolean

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#sendInitialEvents">sendInitialEvents</a>
  
- **shardSelector** (**查询参数**): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#shardSelector">shardSelector</a>

- **timeoutSeconds** (**查询参数**): integer

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#timeoutSeconds">timeoutSeconds</a>

- **watch** (**查询参数**): boolean

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#watch">watch</a>

<!--
#### Response
-->
#### 响应

200 (<a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/extend-resources/device-class-v1/#DeviceClassList">DeviceClassList</a>): OK

401: Unauthorized

<!--
### `create` create a DeviceClass

#### HTTP Request
-->
### `create` 创建 DeviceClass

#### HTTP 请求

POST /apis/resource.k8s.io/v1/deviceclasses

<!--
#### Parameters
-->
#### 参数

<!--
- **body**: <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/extend-resources/device-class-v1/#DeviceClass">DeviceClass</a>, required

- **dryRun** (*in query*): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#dryRun">dryRun</a>

- **fieldManager** (*in query*): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#fieldManager">fieldManager</a>

- **fieldValidation** (*in query*): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#fieldValidation">fieldValidation</a>

- **pretty** (*in query*): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#pretty">pretty</a>
-->
- **body**: <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/extend-resources/device-class-v1/#DeviceClass">DeviceClass</a>，必需

- **dryRun** (**查询参数**): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#dryRun">dryRun</a>

- **fieldManager** (**查询参数**): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#fieldManager">fieldManager</a>

- **fieldValidation** (**查询参数**): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#fieldValidation">fieldValidation</a>

- **pretty** (**查询参数**): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#pretty">pretty</a>

<!--
#### Response
-->
#### 响应

200 (<a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/extend-resources/device-class-v1/#DeviceClass">DeviceClass</a>): OK

201 (<a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/extend-resources/device-class-v1/#DeviceClass">DeviceClass</a>): Created

202 (<a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/extend-resources/device-class-v1/#DeviceClass">DeviceClass</a>): Accepted

401: Unauthorized

<!--
### `update` replace the specified DeviceClass

#### HTTP Request
-->
### `update` 替换指定的 DeviceClass

#### HTTP 请求

PUT /apis/resource.k8s.io/v1/deviceclasses/{name}

<!--
#### Parameters
-->
#### 参数

<!--
- **name** (*in path*): string, required

  name of the DeviceClass

- **body**: <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/extend-resources/device-class-v1/#DeviceClass">DeviceClass</a>, required

- **dryRun** (*in query*): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#dryRun">dryRun</a>

- **fieldManager** (*in query*): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#fieldManager">fieldManager</a>

- **fieldValidation** (*in query*): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#fieldValidation">fieldValidation</a>

- **pretty** (*in query*): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#pretty">pretty</a>
-->
- **name** (**路径参数**): string，必需

  DeviceClass 的名称。

- **body**: <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/extend-resources/device-class-v1/#DeviceClass">DeviceClass</a>，必需

- **dryRun** (**查询参数**): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#dryRun">dryRun</a>

- **fieldManager** (**查询参数**): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#fieldManager">fieldManager</a>

- **fieldValidation** (**查询参数**): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#fieldValidation">fieldValidation</a>

- **pretty** (**查询参数**): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#pretty">pretty</a>

<!--
#### Response
-->
#### 响应

200 (<a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/extend-resources/device-class-v1/#DeviceClass">DeviceClass</a>): OK

201 (<a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/extend-resources/device-class-v1/#DeviceClass">DeviceClass</a>): Created

401: Unauthorized

<!--
### `patch` partially update the specified DeviceClass

#### HTTP Request
-->
### `patch` 部分更新指定的 DeviceClass

#### HTTP 请求

PATCH /apis/resource.k8s.io/v1/deviceclasses/{name}

<!--
#### Parameters
-->
#### 参数

<!--
- **name** (*in path*): string, required

  name of the DeviceClass

- **body**: <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-definitions/patch/#Patch">Patch</a>, required

- **dryRun** (*in query*): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#dryRun">dryRun</a>

- **fieldManager** (*in query*): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#fieldManager">fieldManager</a>

- **fieldValidation** (*in query*): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#fieldValidation">fieldValidation</a>

- **force** (*in query*): boolean

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#force">force</a>

- **pretty** (*in query*): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#pretty">pretty</a>
-->
- **name** (**路径参数**): string，必需

  DeviceClass 的名称。

- **body**: <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-definitions/patch/#Patch">Patch</a>，必需

- **dryRun** (**查询参数**): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#dryRun">dryRun</a>

- **fieldManager** (**查询参数**): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#fieldManager">fieldManager</a>

- **fieldValidation** (**查询参数**): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#fieldValidation">fieldValidation</a>

- **force** (**查询参数**): boolean

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#force">force</a>

- **pretty** (**查询参数**): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#pretty">pretty</a>

<!--
#### Response
-->
#### 响应

200 (<a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/extend-resources/device-class-v1/#DeviceClass">DeviceClass</a>): OK

201 (<a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/extend-resources/device-class-v1/#DeviceClass">DeviceClass</a>): Created

401: Unauthorized

<!--
### `delete` delete a DeviceClass

#### HTTP Request
-->
### `delete` 删除 DeviceClass

#### HTTP 请求

DELETE /apis/resource.k8s.io/v1/deviceclasses/{name}

<!--
#### Parameters
-->
#### 参数

<!--
- **name** (*in path*): string, required

  name of the DeviceClass

- **body**: <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-definitions/delete-options/#DeleteOptions">DeleteOptions</a>

- **dryRun** (*in query*): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#dryRun">dryRun</a>

- **gracePeriodSeconds** (*in query*): integer

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#gracePeriodSeconds">gracePeriodSeconds</a>

- **ignoreStoreReadErrorWithClusterBreakingPotential** (*in query*): boolean

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#ignoreStoreReadErrorWithClusterBreakingPotential">ignoreStoreReadErrorWithClusterBreakingPotential</a>

- **pretty** (*in query*): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#pretty">pretty</a>

- **propagationPolicy** (*in query*): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#propagationPolicy">propagationPolicy</a>
-->
- **name** (**路径参数**): string，必需

  DeviceClass 的名称。

- **body**: <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-definitions/delete-options/#DeleteOptions">DeleteOptions</a>

- **dryRun** (**查询参数**): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#dryRun">dryRun</a>

- **gracePeriodSeconds** (**查询参数**): integer

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#gracePeriodSeconds">gracePeriodSeconds</a>

- **ignoreStoreReadErrorWithClusterBreakingPotential** (**查询参数**): boolean

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#ignoreStoreReadErrorWithClusterBreakingPotential">ignoreStoreReadErrorWithClusterBreakingPotential</a>

- **pretty** (**查询参数**): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#pretty">pretty</a>

- **propagationPolicy** (**查询参数**): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#propagationPolicy">propagationPolicy</a>

<!--
#### Response
-->
#### 响应

200 (<a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/extend-resources/device-class-v1/#DeviceClass">DeviceClass</a>): OK

202 (<a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/extend-resources/device-class-v1/#DeviceClass">DeviceClass</a>): Accepted

401: Unauthorized

<!--
### `deletecollection` delete collection of DeviceClass

#### HTTP Request
-->
### `deletecollection` 删除 DeviceClass 的集合

#### HTTP 请求

DELETE /apis/resource.k8s.io/v1/deviceclasses

<!--
#### Parameters
-->
#### 参数

<!--
- **body**: <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-definitions/delete-options/#DeleteOptions">DeleteOptions</a>

- **continue** (*in query*): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#continue">continue</a>

- **dryRun** (*in query*): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#dryRun">dryRun</a>

- **fieldSelector** (*in query*): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#fieldSelector">fieldSelector</a>

- **gracePeriodSeconds** (*in query*): integer

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#gracePeriodSeconds">gracePeriodSeconds</a>

- **ignoreStoreReadErrorWithClusterBreakingPotential** (*in query*): boolean

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#ignoreStoreReadErrorWithClusterBreakingPotential">ignoreStoreReadErrorWithClusterBreakingPotential</a>

- **labelSelector** (*in query*): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#labelSelector">labelSelector</a>

- **limit** (*in query*): integer

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#limit">limit</a>

- **pretty** (*in query*): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#pretty">pretty</a>

- **propagationPolicy** (*in query*): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#propagationPolicy">propagationPolicy</a>

- **resourceVersion** (*in query*): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#resourceVersion">resourceVersion</a>

- **resourceVersionMatch** (*in query*): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#resourceVersionMatch">resourceVersionMatch</a>

- **sendInitialEvents** (*in query*): boolean

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#sendInitialEvents">sendInitialEvents</a>
  
- **shardSelector** (*in query*): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#shardSelector">shardSelector</a>

- **timeoutSeconds** (*in query*): integer

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#timeoutSeconds">timeoutSeconds</a>
-->
- **body**: <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-definitions/delete-options/#DeleteOptions">DeleteOptions</a>

- **continue** (**查询参数**): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#continue">continue</a>

- **dryRun** (**查询参数**): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#dryRun">dryRun</a>

- **fieldSelector** (**查询参数**): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#fieldSelector">fieldSelector</a>

- **gracePeriodSeconds** (**查询参数**): integer

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#gracePeriodSeconds">gracePeriodSeconds</a>

- **ignoreStoreReadErrorWithClusterBreakingPotential** (**查询参数**): boolean

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#ignoreStoreReadErrorWithClusterBreakingPotential">ignoreStoreReadErrorWithClusterBreakingPotential</a>

- **labelSelector** (**查询参数**): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#labelSelector">labelSelector</a>

- **limit** (**查询参数**): integer

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#limit">limit</a>

- **pretty** (**查询参数**): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#pretty">pretty</a>

- **propagationPolicy** (**查询参数**): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#propagationPolicy">propagationPolicy</a>

- **resourceVersion** (**查询参数**): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#resourceVersion">resourceVersion</a>

- **resourceVersionMatch** (**查询参数**): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#resourceVersionMatch">resourceVersionMatch</a>

- **sendInitialEvents** (**查询参数**): boolean

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#sendInitialEvents">sendInitialEvents</a>
  
- **shardSelector** (**查询参数**): string

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#shardSelector">shardSelector</a>

- **timeoutSeconds** (**查询参数**): integer

  <a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-parameters/common-parameters/#timeoutSeconds">timeoutSeconds</a>

<!--
#### Response
-->
#### 响应

200 (<a href="https://andygol-k8s.netlify.app/zh-cn/docs/reference/kubernetes-api/common-definitions/status/#Status">Status</a>): OK

401: Unauthorized
