*`shape` - (Required) The shape of the instance, e.g. `oc4`.
*`instance_attributes` - (Optional) A JSON string of custom attributes. See [Attributes](#attributes) below for more information.
*`boot_order` - (Optional) The index number of the bootable storage volume, presented as a list, that should be used to boot the instance. The only valid value is `[1]`. If you set this attribute, you must also specify a bootable storage volume with index number 1 in the volume sub-parameter of storage_attachments. When you specify boot_order, you don't need to specify the imagelist attribute, because the instance is booted using the image on the specified bootable storage volume. If you specify both boot_order and imagelist, the imagelist attribute is ignored.
*`hostname` - (Optional) The host name assigned to the instance. On an Oracle Linux instance, this host name is displayed in response to the hostname command. Only relative DNS is supported. The domain name is suffixed to the host name that you specify. The host name must not end with a period. If you don't specify a host name, then a name is generated automatically.
*`image_list` - (Optional) The imageList of the instance, e.g. `/oracle/public/oel_6.4_2GB_v1`.
*`label` - (Optional) The label to apply to the instance.
*`networking_info` - (Optional) Information pertaining to an individual network interface to be created and attached to the instance. See [Networking Info](#networking-info) below for more information.
*`storage` - (Optional) Information pertaining to an individual storage attachment to be created during instance creation. Please see [Storage Attachments](#storage-attachments) below for more information.
There are, as well, some attributes that get populated during instance creation, and the full attributes map can be seen
via the exported `attributes` attribute.
**Warning:** Due to how Terraform imports resources, the `instance_attributes` field will _only_ be populated
when creating a new instance _with terraform_. This requires us to ignore any state diffs on changes to the `instance_attributes` field.
Thus, any configuration changes in the `instance_attributes` field, will not register a diff during a `plan` or `apply`.
If a user wishes to make a change solely to the supplied instance attributes, and recreate the instance resource, `terraform taint` is the best solution.
You can read more about the `taint` command [here](https://www.terraform.io/docs/commands/taint.html)
## Networking Info
Each `networking_info` config manages a single network interface for the instance.
*`index` - (Required) The numerical index of the network interface. Specified as an integer to allow for use of `count`, but directly maps to `ethX`. ie: With `index` set to `0`, the interface `eth0` will be created. Can only be `0-9`.
*`dns` - (Optional) Array of DNS servers for the interface.
*`ip_address` - (Optional, IP Network Only) IP Address assigned to the interface.
*`ip_network` - (Optional, IP Network Only) The IP Network assigned to the interface.
*`mac_address` - (Optional, IP Network Only) The MAC address of the interface.
*`model` - (Required, Shared Network Only) The model of the NIC card used. Must be set to `e1000`.