provider

package
v1.0.0-beta.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 26, 2024 License: MPL-2.0 Imports: 34 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var AwsAccountsDataSourceSchema schema.Schema = schema.Schema{
	Attributes: map[string]schema.Attribute{
		"id": schema.StringAttribute{
			Description:         "Identifier of the AWS account",
			MarkdownDescription: "Identifier of the AWS account",
			Optional:            true,
		},
		"account_alias": schema.StringAttribute{
			Description:         "Alias of the AWS account",
			MarkdownDescription: "Alias of the AWS account",
			Optional:            true,
		},
		"status": schema.StringAttribute{
			Description:         "status of the AWS account",
			MarkdownDescription: "status of the AWS account",
			Optional:            true,
		},
	},
}

AwsAccountsDataSourceSchema defines tha acceptable confirguation and state attribute names and types

View Source
var AwsPermissionPoliciesDataSourceSchema schema.Schema = schema.Schema{
	Attributes: map[string]schema.Attribute{
		"id": schema.StringAttribute{
			Description:         "Identifier of the AWS Permission Policy",
			MarkdownDescription: "Identifier of the AWS Permission Policy",
			Optional:            true,
		},
		"version": schema.StringAttribute{
			Description:         "Version of the AWS Permission Policy",
			MarkdownDescription: "Version of the AWS Permission Policy",
			Optional:            true,
		},
		"permission_policy": schema.StringAttribute{
			MarkdownDescription: "The JSON stringified details of the Permissions Policy",
			Description:         "The JSON stringified details of the Permissions Policy",
			Computed:            true,
		},
	},
}

AwsPermissionPoliciesDataSourceSchema defines tha acceptable confirguation and state attribute names and types

View Source
var ClonesDataSourceSchema schema.Schema = schema.Schema{
	Attributes: map[string]schema.Attribute{
		"id": schema.StringAttribute{
			Description:         "Identifier of the cloned object",
			MarkdownDescription: "Identifier of the cloned object",
			Optional:            true,
		},
		"name": schema.StringAttribute{
			Description:         "Name of the clone",
			MarkdownDescription: "Name of the clone",
			Computed:            true,
		},
		"description": schema.StringAttribute{
			Description:         "Description of the clone",
			MarkdownDescription: "Description of the clone",
			Computed:            true,
		},
		"mobility_target_id": schema.StringAttribute{
			Description:         "Mobility target ID",
			MarkdownDescription: "Mobility target ID",
			Computed:            true,
		},
		"creation_timestamp": schema.StringAttribute{
			Description:         "When the clone was created",
			MarkdownDescription: "When the clone was created",
			Computed:            true,
		},
		"refresh_timestamp": schema.StringAttribute{
			Description:         "When the clone was last updated",
			MarkdownDescription: "When the clone was last updated",
			Computed:            true,
		},
		"image_timestamp": schema.StringAttribute{
			Description:         "Image timestamp",
			MarkdownDescription: "Image timestamp",
			Computed:            true,
		},
		"clone_volumes": schema.ListNestedAttribute{
			Description:         "A clone mobility member provides details of clone volume",
			MarkdownDescription: "A clone mobility member provides details of clone volume",
			Computed:            true,
			NestedObject: schema.NestedAttributeObject{
				Attributes: map[string]schema.Attribute{
					"id": schema.StringAttribute{
						Description:         "ID of the member",
						MarkdownDescription: "ID of the member",
						Computed:            true,
					},
					"parent_id": schema.StringAttribute{
						Description:         "Identifier of the related mobility member",
						MarkdownDescription: "Identifier of the related mobility member",
						Computed:            true,
					},
					"name": schema.StringAttribute{
						Description:         "Name of the member",
						MarkdownDescription: "Name of the member",
						Computed:            true,
					},
					"size": schema.StringAttribute{
						Description:         "Size of the member",
						MarkdownDescription: "Size of the member",
						Computed:            true,
					},
				},
			},
		},
		"host_mappings": schema.ListNestedAttribute{
			Description:         "This represents the mapping of a repurposed (clone) storage object to a host (presumably using the clone for some analytical workload)",
			MarkdownDescription: "This represents the mapping of a repurposed (clone) storage object to a host (presumably using the clone for some analytical workload)",
			Computed:            true,
			NestedObject: schema.NestedAttributeObject{
				Attributes: map[string]schema.Attribute{
					"host_name": schema.StringAttribute{
						Description:         "Name of host/SDC to be mapped to the clone",
						MarkdownDescription: "Name of host/SDC to be mapped to the clone",
						Computed:            true,
					},
					"host_ip": schema.StringAttribute{
						Description:         "IP address of host",
						MarkdownDescription: "IP address of host",
						Computed:            true,
					},
					"host_id": schema.StringAttribute{
						Description:         "Identifier of the host",
						MarkdownDescription: "Identifier of the host",
						Computed:            true,
					},
					"id": schema.StringAttribute{
						Description:         "This is a host mappings id generated by APEX Navigator for Multicloud Storage",
						MarkdownDescription: "This is a host mappings id generated by APEX Navigator for Multicloud Storage",
						Computed:            true,
					},
					"nqn": schema.StringAttribute{
						Description:         "NVMe qualified name. Only applicable if host_initiator_protocol is NVMe",
						MarkdownDescription: "NVMe qualified name. Only applicable if host_initiator_protocol is NVMe",
						Computed:            true,
					},
					"host_initiator_protocol": schema.StringAttribute{
						Description:         "Type of the host",
						MarkdownDescription: "Type of the host",
						Computed:            true,
					},
				},
			},
		},
	},
}

ClonesDataSourceSchema defines tha acceptable confirguation and state attribute names and types

View Source
var MobilityGroupsDataSourceSchema schema.Schema = schema.Schema{
	Attributes: map[string]schema.Attribute{
		"id": schema.StringAttribute{
			Description:         "Mobility group identifier",
			MarkdownDescription: "Mobility group identifier",
			Optional:            true,
		},
		"name": schema.StringAttribute{
			Description:         "Name of the mobility group",
			MarkdownDescription: "Name of the mobility group",
			Computed:            true,
		},
		"description": schema.StringAttribute{
			Description:         "Description of the mobility group",
			MarkdownDescription: "Description of the mobility group",
			Computed:            true,
		},
		"system_id": schema.StringAttribute{
			Description:         "Identifier of the system for the mobility group members",
			MarkdownDescription: "Identifier of the system for the mobility group members",
			Computed:            true,
		},
		"system_type": schema.StringAttribute{
			Description:         "The source system type (e.g.: POWERFLEX)",
			MarkdownDescription: "The source system type (e.g.: POWERFLEX)",
			Computed:            true,
		},
		"creation_timestamp": schema.StringAttribute{
			Description:         "When the mobility group was created",
			MarkdownDescription: "When the mobility group was created",
			Computed:            true,
		},
		"volume_id": schema.ListAttribute{
			ElementType: types.StringType,
			Computed:    true,
		},
		"members": schema.ListNestedAttribute{
			Computed:    true,
			Description: "A mobility member is an object (e.g. volume) that is part of a mobility group that will be the source of mobility copy operations",
			NestedObject: schema.NestedAttributeObject{
				Attributes: map[string]schema.Attribute{
					"id": schema.StringAttribute{
						Description:         "Identifier of the member (e.g. PowerFlex volume identifier)",
						MarkdownDescription: "Identifier of the member (e.g. PowerFlex volume identifier)",
						Computed:            true,
					},
					"name": schema.StringAttribute{
						Description:         "Name of the member (e.g. name of the volume)",
						MarkdownDescription: "Name of the member (e.g. name of the volume)",
						Computed:            true,
					},
					"size": schema.StringAttribute{
						Description:         "Size of the member (e.g. volume size in bytes)",
						MarkdownDescription: "Size of the member (e.g. volume size in bytes)",
						Computed:            true,
					},
				},
			},
		},
	},
}

MobilityGroupsDataSourceSchema defines the acceptable configuration and state attributes names and types

View Source
var MobilityTargetsDataSourceSchema schema.Schema = schema.Schema{
	Attributes: map[string]schema.Attribute{
		"id": schema.StringAttribute{
			MarkdownDescription: "Idenifier of this target mobility group",
			Description:         "Idenifier of this target mobility group",
			Optional:            true,
		},
		"name": schema.StringAttribute{
			Description:         "Name of the mobility target",
			MarkdownDescription: "Name of the mobility target",
			Computed:            true,
		},
		"description": schema.StringAttribute{
			MarkdownDescription: "Description of the mobility target",
			Description:         "Description of the mobility target",
			Computed:            true,
		},
		"system_id": schema.StringAttribute{
			Description:         "ID of the target system",
			MarkdownDescription: "ID of the target system",
			Computed:            true,
		},
		"system_type": schema.StringAttribute{
			Description:         "The source system type (e.g.: POWERFLEX)",
			MarkdownDescription: "The source system type (e.g.: POWERFLEX)",
			Computed:            true,
		},
		"source_mobility_group_id": schema.StringAttribute{
			Description:         "ID of the source mobility group",
			MarkdownDescription: "ID of the source mobility group",
			Computed:            true,
		},
		"creation_timestamp": schema.StringAttribute{
			Description:         "Timestamp from when the group was created",
			MarkdownDescription: "Timestamp from when the group was created",
			Computed:            true,
		},
		"image_timestamp": schema.StringAttribute{
			Description:         "Timestamp of the last source image copied to this target",
			MarkdownDescription: "Timestamp of the last source image copied to this target",
			Computed:            true,
		},
		"target_members": schema.ListNestedAttribute{
			Description:         "A mobility member map is a mapping of a mobility member and it's related member. Ex: a target volume with a reference to the source volume or a clone volume and its related target volume.",
			MarkdownDescription: "A mobility member map is a mapping of a mobility member and it's related member. Ex: a target volume with a reference to the source volume or a clone volume and its related target volume.",
			Computed:            true,
			NestedObject: schema.NestedAttributeObject{
				Attributes: map[string]schema.Attribute{
					"id": schema.StringAttribute{
						Description:         "ID of the member",
						MarkdownDescription: "ID of the member",
						Computed:            true,
					},
					"parent_id": schema.StringAttribute{
						Description:         "Identifier of the related mobility member",
						MarkdownDescription: "Identifier of the related mobility member",
						Computed:            true,
					},
					"name": schema.StringAttribute{
						Description:         "Name of the member",
						MarkdownDescription: "Name of the member",
						Computed:            true,
					},
					"size": schema.StringAttribute{
						Description:         "Size of the member",
						MarkdownDescription: "Size of the member",
						Computed:            true,
					},
				},
			},
		},
		"last_copy_job_id": schema.StringAttribute{
			MarkdownDescription: "Last copy job ID",
			Description:         "Last copy job ID",
			Computed:            true,
		},
		"bandwidth_limit": schema.Int64Attribute{
			Description:         "Bandwidth limit in Mbps (Mega bits per second).",
			MarkdownDescription: "Bandwidth limit in Mbps (Mega bits per second).",
			Computed:            true,
		},
		"target_system_options": schema.StringAttribute{
			Description:         "Storage pool id to use for allocating target volumes",
			MarkdownDescription: "Storage pool id to use for allocating target volumes",
			Computed:            true,
		},
		"type": schema.StringAttribute{
			Optional: true,
		},
	},
}

MobilityTargetsDataSourceSchema defines tha acceptable confirguation and state attribute names and types

View Source
var PowerflexAsyncInfo schema.Schema = schema.Schema{
	Attributes: map[string]schema.Attribute{
		"username": schema.StringAttribute{
			MarkdownDescription: "Username of the powerflex",
			Description:         "Username of the powerflex",
			Required:            true,
		},
		"password": schema.StringAttribute{
			MarkdownDescription: "Password of the powerflex",
			Description:         "Password of the powerflex",
			Sensitive:           true,
			Required:            true,
		},
		"insecure": schema.BoolAttribute{
			MarkdownDescription: "Validated the certificate when connecting to the powerflex, defaults if unset to true",
			Description:         "Validated the certificate when connecting to the powerflex, defaults if unset to true",
			Optional:            true,
			Computed:            true,
			Default:             booldefault.StaticBool(true),
		},
		"scheme": schema.StringAttribute{
			MarkdownDescription: "Scheme of the powerflex, defaults if unset to https",
			Description:         "Scheme of the powerflex, defaults if unset to https",
			Optional:            true,
			Computed:            true,
			Default:             stringdefault.StaticString("https"),
		},
		"host": schema.StringAttribute{
			MarkdownDescription: "Host, ip or hostname of the powerflex. If left empty we will attempt to get the ip through Apex from the ID",
			Description:         "Host, ip or hostname of the powerflex. If left empty we will attempt to get the ip through Apex from the ID",
			Optional:            true,
			Computed:            true,
		},
		"poll_interval": schema.Int64Attribute{
			MarkdownDescription: "Poll interval for long-running operations in seconds. This will check if the powerflex is activated every interval. Defaults if unset to 30",
			Description:         "Poll interval for long-running operations in seconds. This will check if the powerflex is activated every interval. Defaults if unset to 30",
			Optional:            true,
			Computed:            true,
			Default:             int64default.StaticInt64(30),
		},
	},
}

PowerflexAsyncInfo Schema defines tha acceptable confirguation and state attribute names and types

View Source
var PowerflexInfo schema.Schema = schema.Schema{
	Attributes: map[string]schema.Attribute{
		"username": schema.StringAttribute{
			MarkdownDescription: "Username of the powerflex",
			Description:         "Username of the powerflex",
			Required:            true,
		},
		"password": schema.StringAttribute{
			MarkdownDescription: "Password of the powerflex",
			Description:         "Password of the powerflex",
			Sensitive:           true,
			Required:            true,
		},
		"insecure": schema.BoolAttribute{
			MarkdownDescription: "Validated the certificate when connecting to the powerflex, defaults if unset to true",
			Description:         "Validated the certificate when connecting to the powerflex, defaults if unset to true",
			Optional:            true,
			Computed:            true,
			Default:             booldefault.StaticBool(true),
		},
		"scheme": schema.StringAttribute{
			MarkdownDescription: "Scheme of the powerflex, defaults if unset to https",
			Description:         "Scheme of the powerflex, defaults if unset to https",
			Optional:            true,
			Computed:            true,
			Default:             stringdefault.StaticString("https"),
		},
		"host": schema.StringAttribute{
			MarkdownDescription: "Host, ip or hostname of the powerflex. If left empty we will attempt to get the ip through Apex from the ID",
			Description:         "Host, ip or hostname of the powerflex. If left empty we will attempt to get the ip through Apex from the ID",
			Optional:            true,
			Computed:            true,
		},
	},
}

PowerflexInfo Schema defines tha acceptable confirguation and state attribute names and types

View Source
var StorageDataSourceSchema schema.Schema = schema.Schema{
	Attributes: map[string]schema.Attribute{
		"id": schema.StringAttribute{
			MarkdownDescription: "Identifier for the storage system",
			Description:         "Identifier for the storage system",
			Optional:            true,
		},
		"system_id": schema.StringAttribute{
			MarkdownDescription: "Unique identifier for the device or appliance",
			Description:         "Unique identifier for the device or appliance",
			Computed:            true,
		},
		"storage_system_type": schema.StringAttribute{
			MarkdownDescription: "Type of the system",
			Description:         "Type of the system",
			Computed:            true,
		},
		"system_type": schema.StringAttribute{
			MarkdownDescription: "Type of the system",
			Description:         "Type of the system",
			Computed:            true,
		},
		"bandwidth": schema.Int64Attribute{
			MarkdownDescription: "The system bandwidth. Aggregated for a rolling average over the last 24 hours - Unit: bytes/s",
			Description:         "The system bandwidth. Aggregated for a rolling average over the last 24 hours - Unit: bytes/s",
			Computed:            true,
		},
		"capacity_impact": schema.Int64Attribute{
			MarkdownDescription: "Impact point of highest impacting issue in the capacity health category",
			Description:         "Impact point of highest impacting issue in the capacity health category",
			Computed:            true,
		},
		"capacity_issue_count": schema.Int64Attribute{
			MarkdownDescription: "Total number of issues in the capacity health category",
			Description:         "Total number of issues in the capacity health category",
			Computed:            true,
		},
		"compression_savings": schema.Float64Attribute{
			Description:         "Storage efficiency ratio of data which has compression applied to it on the system.",
			MarkdownDescription: "Storage efficiency ratio of data which has compression applied to it on the system.",
			Computed:            true,
		},
		"configuration_impact": schema.Int64Attribute{
			Description:         "Impact point of highest impacting issue in the configuration health category.",
			MarkdownDescription: "Impact point of highest impacting issue in the configuration health category.",
			Computed:            true,
		},
		"configuration_issue_count": schema.Int64Attribute{
			Description:         "Total number of issues in the configuration health category.",
			MarkdownDescription: "Total number of issues in the configuration health category.",
			Computed:            true,
		},
		"configured_size": schema.Int64Attribute{
			Description:         "The configured size for this system - Unit: bytes.",
			MarkdownDescription: "The configured size for this system - Unit: bytes.",
			Computed:            true,
		},
		"connectivity_status": schema.StringAttribute{
			Description:         "Connectivity status.",
			MarkdownDescription: "Connectivity status.",
			Computed:            true,
		},
		"license_type": schema.StringAttribute{
			Description:         "Type of the license on the system.",
			MarkdownDescription: "Type of the license on the system.",
			Computed:            true,
		},
		"license_expiration_date_timestamp": schema.StringAttribute{
			Description:         "Expiration date for the license on the system.",
			MarkdownDescription: "Expiration date for the license on the system.",
			Computed:            true,
		},
		"contract_coverage_type": schema.StringAttribute{
			Description:         "Type of the service contract of the system.",
			MarkdownDescription: "Type of the service contract of the system.",
			Computed:            true,
		},
		"contract_expiration_date_timestamp": schema.StringAttribute{
			Description:         "Expiration date for the service contract of the system.",
			MarkdownDescription: "Expiration date for the service contract of the system.",
			Computed:            true,
		},
		"data_protection_impact": schema.Int64Attribute{
			Description:         "Impact point of highest impacting issue in the data protection health category.",
			MarkdownDescription: "Impact point of highest impacting issue in the data protection health category.",
			Computed:            true,
		},
		"data_protection_issue_count": schema.Int64Attribute{
			Description:         "Total number of issues in the data protection health category.",
			MarkdownDescription: "Total number of issues in the data protection health category.",
			Computed:            true,
		},
		"display_identifier": schema.StringAttribute{
			Description:         "Unique identifier for the system.",
			MarkdownDescription: "Unique identifier for the system.",
			Computed:            true,
		},
		"free_percent": schema.Float64Attribute{
			Description:         "The %free capacity.",
			MarkdownDescription: "The %free capacity.",
			Computed:            true,
		},
		"free_size": schema.Int64Attribute{
			Description:         "The free size value - Unit: bytes.",
			MarkdownDescription: "The free size value - Unit: bytes.",
			Computed:            true,
		},
		"health_connectivity_status": schema.StringAttribute{
			Description:         "Health connectivity status.",
			MarkdownDescription: "Health connectivity status.",
			Computed:            true,
		},
		"health_issue_count": schema.Int64Attribute{
			Description:         "Total amount of health issues.",
			MarkdownDescription: "Total amount of health issues.",
			Computed:            true,
		},
		"health_score": schema.Int64Attribute{
			Description:         "The overall health score of the system.",
			MarkdownDescription: "The overall health score of the system.",
			Computed:            true,
		},
		"health_state": schema.StringAttribute{
			Description:         "Health state of the system.",
			MarkdownDescription: "Health state of the system.",
			Computed:            true,
		},
		"iops": schema.Int64Attribute{
			Description:         "The IOPS for the system. Aggregated for a rolling average over the last 24 hours - Unit: IO/s.",
			MarkdownDescription: "The IOPS for the system. Aggregated for a rolling average over the last 24 hours - Unit: IO/s.",
			Computed:            true,
		},
		"ipv4_address": schema.StringAttribute{
			Description:         "IPv4 address of the system.",
			MarkdownDescription: "IPv4 address of the system.",
			Computed:            true,
		},
		"ipv6_address": schema.StringAttribute{
			Description:         "IPv6 address of the system.",
			MarkdownDescription: "IPv6 address of the system.",
			Computed:            true,
		},
		"last_contact_timestamp": schema.StringAttribute{
			Description:         "Last time that CloudIQ received data from the system.",
			MarkdownDescription: "Last time that CloudIQ received data from the system.",
			Computed:            true,
		},
		"latency": schema.Int64Attribute{
			Description:         "The latency for the system. Aggregated for a rolling average over the last 24 hours - Unit: microseconds.",
			MarkdownDescription: "The latency for the system. Aggregated for a rolling average over the last 24 hours - Unit: microseconds.",
			Computed:            true,
		},
		"logical_size": schema.Int64Attribute{
			Description:         "The logical size written - Unit: bytes.",
			MarkdownDescription: "The logical size written - Unit: bytes.",
			Computed:            true,
		},
		"model": schema.StringAttribute{
			Description:         "The model of the system.",
			MarkdownDescription: "The model of the system.",
			Computed:            true,
		},
		"name": schema.StringAttribute{
			Description:         "The user-defined name of the system.",
			MarkdownDescription: "The user-defined name of the system.",
			Computed:            true,
		},
		"overall_efficiency": schema.Float64Attribute{
			Description:         "The overall system-level storage efficiency ratio based on Thin, Snapshots, Deduplication, and Data Reduction.",
			MarkdownDescription: "The overall system-level storage efficiency ratio based on Thin, Snapshots, Deduplication, and Data Reduction.",
			Computed:            true,
		},
		"performance_impact": schema.Int64Attribute{
			Description:         "Impact point of highest impacting issue in the performance health category.",
			MarkdownDescription: "Impact point of highest impacting issue in the performance health category.",
			Computed:            true,
		},
		"performance_issue_count": schema.Int64Attribute{
			Description:         "Total number of issues in the performance health category.",
			MarkdownDescription: "Total number of issues in the performance health category.",
			Computed:            true,
		},
		"serial_number": schema.StringAttribute{
			Description:         "The serial number for this system.",
			MarkdownDescription: "The serial number for this system.",
			Computed:            true,
		},
		"site_name": schema.StringAttribute{
			Description:         "Name of the site where the system is registered to.",
			MarkdownDescription: "Name of the site where the system is registered to.",
			Computed:            true,
		},
		"snaps_savings": schema.Float64Attribute{
			Description:         "The snaps savings for this system.",
			MarkdownDescription: "The snaps savings for this system.",
			Computed:            true,
		},
		"system_health_impact": schema.Int64Attribute{
			Description:         "Health impact for the system.",
			MarkdownDescription: "Health impact for the system.",
			Computed:            true,
		},
		"system_health_issue_count": schema.Int64Attribute{
			Description:         "Total amount of health issues for the system.",
			MarkdownDescription: "Total amount of health issues for the system.",
			Computed:            true,
		},
		"thin_savings": schema.Float64Attribute{
			Description:         "The savings due to thin provisioning.",
			MarkdownDescription: "The savings due to thin provisioning.",
			Computed:            true,
		},
		"total_size": schema.Int64Attribute{
			Description:         "The total size of the system - Unit: bytes.",
			MarkdownDescription: "The total size of the system - Unit: bytes.",
			Computed:            true,
		},
		"unconfigured_size": schema.Int64Attribute{
			Description:         "The unconfigured capacity for this system - Unit: bytes.",
			MarkdownDescription: "The unconfigured capacity for this system - Unit: bytes.",
			Computed:            true,
		},
		"used_percent": schema.Float64Attribute{
			Description:         "Percentage of capacity used for this system.",
			MarkdownDescription: "Percentage of capacity used for this system.",
			Computed:            true,
		},
		"used_size": schema.Int64Attribute{
			Description:         "The value of used capacity for this system - Unit: bytes.",
			MarkdownDescription: "The value of used capacity for this system - Unit: bytes.",
			Computed:            true,
		},
		"vendor": schema.StringAttribute{
			Description:         "Name of the vendor who makes the system.",
			MarkdownDescription: "Name of the vendor who makes the system.",
			Computed:            true,
		},
		"product_version": schema.StringAttribute{
			MarkdownDescription: "Product version.",
			Description:         "Product version.",
			Computed:            true,
		},
		"version": schema.StringAttribute{
			Description:         "Version identifier.",
			MarkdownDescription: "Version identifier.",
			Computed:            true,
		},
		"deployment_details": schema.SingleNestedAttribute{
			MarkdownDescription: "Details of the deployment",
			Description:         "Details of the deployment",
			Computed:            true,
			Attributes: map[string]schema.Attribute{
				"system_on_prem": schema.SingleNestedAttribute{
					Computed: true,
					Attributes: map[string]schema.Attribute{
						"deployment_type": schema.StringAttribute{
							Description:         "System deployment types (e.g. PUBLIC_CLOUD)",
							MarkdownDescription: "System deployment types (e.g. PUBLIC_CLOUD)",
							Computed:            true,
						},
						"site_name": schema.StringAttribute{
							MarkdownDescription: "Name of the site where the system is located",
							Description:         "Name of the site where the system is located",
							Computed:            true,
						},
						"location": schema.StringAttribute{
							Description:         "User provided description of where the system is located.",
							MarkdownDescription: "User provided description of where the system is located.",
							Computed:            true,
						},
						"country": schema.StringAttribute{
							Description:         "Name of the country where the system is located.",
							MarkdownDescription: "Name of the country where the system is located.",
							Computed:            true,
						},
						"state": schema.StringAttribute{
							Description:         "Name of the state where the system is located.",
							MarkdownDescription: "Name of the state where the system is located.",
							Computed:            true,
						},
						"city": schema.StringAttribute{
							Description:         "Name of the city where the system is located.",
							MarkdownDescription: "Name of the city where the system is located.",
							Computed:            true,
						},
						"street_address_1": schema.StringAttribute{
							Description:         "Street address 1 of where the system is located",
							MarkdownDescription: "Street address 1 of where the system is located",
							Computed:            true,
						},
						"street_address_2": schema.StringAttribute{
							Description:         "Street address 2 of where the system is located",
							MarkdownDescription: "Street address 2 of where the system is located",
							Computed:            true,
						},
						"zip_code": schema.StringAttribute{
							Description:         "Zip code of where the system is located",
							MarkdownDescription: "Zip code of where the system is located",
							Computed:            true,
						},
					},
				},
				"system_public_cloud": schema.SingleNestedAttribute{
					Computed: true,
					Attributes: map[string]schema.Attribute{
						"deployment_type": schema.StringAttribute{
							Description:         "System deployment types (e.g. PUBLIC_CLOUD)",
							MarkdownDescription: "System deployment types (e.g. PUBLIC_CLOUD)",
							Computed:            true,
						},
						"cloud_type": schema.StringAttribute{
							Description:         "Enum for all the supported cloud providers * AWS - Amazon Web Services",
							MarkdownDescription: "Enum for all the supported cloud providers * AWS - Amazon Web Services",
							Computed:            true,
						},
						"cloud_account": schema.StringAttribute{
							Description:         "Cloud provider account where the storage system resides",
							MarkdownDescription: "Cloud provider account where the storage system resides",
							Computed:            true,
						},
						"cloud_region": schema.StringAttribute{
							Description:         "Cloud provider region where the storage system resides",
							MarkdownDescription: "Cloud provider region where the storage system resides",
							Computed:            true,
						},
						"availability_zone_topology": schema.StringAttribute{
							Description:         "This enum represents all the availability zone topology * SINGLE_AVAILABILITY_ZONE * MULTIPLE_AVAILABILITY_ZONE",
							MarkdownDescription: "This enum represents all the availability zone topology * SINGLE_AVAILABILITY_ZONE * MULTIPLE_AVAILABILITY_ZONE",
							Computed:            true,
						},
						"virtual_private_cloud": schema.StringAttribute{
							Description:         "Cloud virtual private environment identifier",
							MarkdownDescription: "Cloud virtual private environment identifier",
							Computed:            true,
						},
						"cloud_management_address": schema.StringAttribute{
							Description:         "Management IPv4 or IPv6 address or DNS name of the storage system in cloud",
							MarkdownDescription: "Management IPv4 or IPv6 address or DNS name of the storage system in cloud",
							Computed:            true,
						},
						"minimum_iops": schema.Int64Attribute{
							Description:         "Minimum IOPS requested during the deployment time - Unit: IO/s",
							MarkdownDescription: "Minimum IOPS requested during the deployment time - Unit: IO/s",
							Computed:            true,
						},
						"minimum_capacity": schema.Int64Attribute{
							Description:         "Minimum capacity requested during the deployment time - Unit: bytes",
							MarkdownDescription: "Minimum capacity requested during the deployment time - Unit: bytes",
							Computed:            true,
						},
						"raw_capacity": schema.StringAttribute{
							Description:         "Raw capacity requested during the deployment time - Unit: bytes",
							MarkdownDescription: "Raw capacity requested during the deployment time - Unit: bytes",
							Optional:            true,
						},
						"tier_type": schema.StringAttribute{
							Description:         "Tier type requested during the deployment time",
							MarkdownDescription: "Tier type requested during the deployment time",
							Computed:            true,
						},
						"ssh_key_name": schema.StringAttribute{
							Computed: true,
						},
						"iam_instance_profile": schema.StringAttribute{
							Description:         "Raw capacity requested during the deployment time - Unit: bytes",
							MarkdownDescription: "Raw capacity requested during the deployment time - Unit: bytes",
							Optional:            true,
						},
						"availability_zones": schema.ListAttribute{
							Description:         "List of availability zones",
							MarkdownDescription: "List of availability zones",
							Optional:            true,
							ElementType:         types.StringType,
						},
						"vpc": schema.SingleNestedAttribute{
							Description:         "VPC",
							MarkdownDescription: "VPC",
							Computed:            true,
							Attributes: map[string]schema.Attribute{
								"is_new_vpc": schema.BoolAttribute{
									Computed: true,
								},
								"vpc_id": schema.StringAttribute{
									Computed: true,
								},
								"vpc_name": schema.StringAttribute{
									Computed: true,
								},
							},
						},
						"subnet_options": schema.ListNestedAttribute{
							Description:         "Subnet options",
							MarkdownDescription: "Subnet options",
							Computed:            true,
							NestedObject: schema.NestedAttributeObject{
								Attributes: map[string]schema.Attribute{

									"subnet_option": schema.ListNestedAttribute{
										Computed: true,
										NestedObject: schema.NestedAttributeObject{
											Attributes: map[string]schema.Attribute{
												"subnet_id": schema.StringAttribute{
													Computed: true,
												},
												"cidr_block": schema.StringAttribute{
													Computed: true,
												},
												"subnet_type": schema.StringAttribute{
													Computed: true,
												},
											},
										},
									},
								},
							},
						},
					},
				},
			},
		},
	},
}

StorageDataSourceSchema defines the schema for a storage system instance data source and its attributes are used in storage systems collection data source

Functions

func GetStorageSystemSchema

func GetStorageSystemSchema(systemType string) map[string]schema.Attribute

GetStorageSystemSchema returns a map of attribute names and types

func New

func New(version string) func() provider.Provider

New is a helper function to simplify provider server and testing implementation.

func NewAwsAccountResource

func NewAwsAccountResource() resource.Resource

NewAwsAccountResource is a helper function to simplify the provider implementation.

func NewAwsAccountsDataSource

func NewAwsAccountsDataSource() datasource.DataSource

NewAwsAccountsDataSource returns a new aws accounts datasource instance.

func NewAwsPermissionsDataSource

func NewAwsPermissionsDataSource() datasource.DataSource

NewAwsPermissionsDataSource returns a new aws permissions datasource instance.

func NewBlockStorageResource

func NewBlockStorageResource() resource.Resource

NewBlockStorageResource returns a storage system resource object

func NewClonesDataSource

func NewClonesDataSource() datasource.DataSource

NewClonesDataSource returns a new clones data source instance.

func NewClonesMapResource

func NewClonesMapResource() resource.Resource

NewClonesMapResource returns a storage system resource object

func NewClonesRefreshResource

func NewClonesRefreshResource() resource.Resource

NewClonesRefreshResource returns a storage system resource object

func NewClonesResource

func NewClonesResource() resource.Resource

NewClonesResource is a helper function to simplify the provider implementation.

func NewClonesUnmapResource

func NewClonesUnmapResource() resource.Resource

NewClonesUnmapResource returns a storage system resource object

func NewFileStorageResource

func NewFileStorageResource() resource.Resource

NewFileStorageResource returns a storage system resource object

func NewHostsDataSource

func NewHostsDataSource() datasource.DataSource

NewHostsDataSource returns a new hosts data source instance.

func NewMobilityGroupsCopyResource

func NewMobilityGroupsCopyResource() resource.Resource

NewMobilityGroupsCopyResource returns a storage system resource object

func NewMobilityGroupsDataSource

func NewMobilityGroupsDataSource() datasource.DataSource

NewMobilityGroupsDataSource is a storage system data source object

func NewMobilityGroupsResource

func NewMobilityGroupsResource() resource.Resource

NewMobilityGroupsResource returns a storage system resource object

func NewMobilityTargetsDataSource

func NewMobilityTargetsDataSource() datasource.DataSource

NewMobilityTargetsDataSource is a storage system data source object

func NewMobilityTargetsResource

func NewMobilityTargetsResource() resource.Resource

NewMobilityTargetsResource returns a storage system resource object

func NewPoolsDataSource

func NewPoolsDataSource() datasource.DataSource

NewPoolsDataSource returns a new pools data source instance.

func NewStorageProductsDataSource

func NewStorageProductsDataSource() datasource.DataSource

NewStorageProductsDataSource returns a new storage products data source instance.

func NewStoragesDataSource

func NewStoragesDataSource() datasource.DataSource

NewStoragesDataSource is a storage data source object

func NewTrustPolicyGenerateResource

func NewTrustPolicyGenerateResource() resource.Resource

NewTrustPolicyGenerateResource returns a trust policy resource

func NewVolumesDataSource

func NewVolumesDataSource() datasource.DataSource

NewVolumesDataSource returns a new volumes data source instance.

Types

type Clients

type Clients struct {
	APIClient *client.APIClient
	JMSClient *jmsClient.APIClient
}

Clients is the structure for the API client and JMS client.

func NewApexJmsClient

func NewApexJmsClient(ctx context.Context, hostURL url.URL, jmsURL url.URL, token string, insecure bool) (*Clients, error)

NewApexJmsClient creates a new instance of Clients, which contains two API clients: apiClient and jobsClient.

The function takes the following parameters: - ctx: the context.Context object for cancellation and timeouts. - hostURL: the URL of the host API. - jmsURL: the URL of the JMS API. - insecure: a boolean indicating whether to skip SSL certificate verification or not.

It returns a pointer to Clients and an error.

type StorageSystemResource

type StorageSystemResource struct {
	StorageSystem resource.Resource
	// contains filtered or unexported fields
}

StorageSystemResource is a resource that represents a storage system

func (*StorageSystemResource) Delete

Delete deletes the resource and removes the Terraform state on success.

func (*StorageSystemResource) ImportState

ImportState imports the Terraform resource

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL