# ActionStruct

    struct ActionStruct

The details of a single action.
- `


  ### [name](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Matter/ActionsTrait/ActionStruct#/s:15GoogleHomeTypes6MatterO12ActionsTraitV12ActionStructV4nameSSvp)


  ` The name as assigned by the user or automatically by the server associated with this
  action.

  #### Declaration

  Swift

      let name: String

- `


  ### [type](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Matter/ActionsTrait/ActionStruct#/s:15GoogleHomeTypes6MatterO12ActionsTraitV12ActionStructV4typeAE0G8TypeEnumOvp)


  ` The type of endpoint list.

  #### Declaration

  Swift

      let type: https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Matter.html.https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Matter/ActionsTrait.html.https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Matter/ActionsTrait/ActionTypeEnum.html

- `


  ### [supportedCommands](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Matter/ActionsTrait/ActionStruct#/s:15GoogleHomeTypes6MatterO12ActionsTraitV12ActionStructV17supportedCommandsAE11CommandBitsVvp)


  ` A bitmap indicating which of the cluster's commands are supported for this particular
  action.

  #### Declaration

  Swift

      let supportedCommands: https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Matter.html.https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Matter/ActionsTrait.html.https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Matter/ActionsTrait/CommandBits.html

- `


  ### [state](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Matter/ActionsTrait/ActionStruct#/s:15GoogleHomeTypes6MatterO12ActionsTraitV12ActionStructV5stateAE0G9StateEnumOvp)


  ` The current state of this action.

  #### Declaration

  Swift

      let state: https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Matter.html.https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Matter/ActionsTrait.html.https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Matter/ActionsTrait/ActionStateEnum.html

- `


  ### [init(decoder:)](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Matter/ActionsTrait/ActionStruct#/s:15GoogleHomeTypes6MatterO12ActionsTraitV12ActionStructV7decoderAG0aB3SDK0F7DecoderV_tKcfc)


  ` Creates a new Struct instance using data read from the given `TraitDecoder`.
  Throws
  `HomeError.parseError` when parsing fails.

  #### Declaration

  Swift

      init(decoder: TraitDecoder) throws

  #### Parameters

  |---|---|
  | ` decoder ` | The raw data representing this Struct. |

- `


  ### [encode(with:)](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Matter/ActionsTrait/ActionStruct#/s:15GoogleHomeTypes6MatterO12ActionsTraitV12ActionStructV6encode4withy0aB3SDK0F7EncoderC_tKF)


  ` Writes this Struct to the given `TraitEncoder`.
  Throws `HomeError.parseError` if the data could not be encoded.

  #### Declaration

  Swift

      func encode(with encoder: TraitEncoder) throws

- `


  ### [structField(id:)](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Matter/ActionsTrait/ActionStruct#/s:15GoogleHomeTypes6MatterO12ActionsTraitV12ActionStructV11structField2id0aB3SDK0J0_pSgs6UInt32V_tFZ)


  ` Returns the field corresponding to the given field ID.

  #### Declaration

  Swift

      static func structField(id: UInt32) -> (any Field)?