Documentation ¶
Overview ¶
package navigator handles resource and data sources.
package navigator handles resource and data sources.
Index ¶
- Constants
- Variables
- func GetErrorString(err error, status *http.Response) string
- func New(version string) func() provider.Provider
- func NewBlockStorageInstanceDataSource() datasource.DataSource
- func NewBlockStorageResource() resource.Resource
- func NewBlockStoragesDataSource() datasource.DataSource
- func NewCloneInstancesDataSource() datasource.DataSource
- func NewClonesDataSource() datasource.DataSource
- func NewClonesMapResource() resource.Resource
- func NewClonesRefreshResource() resource.Resource
- func NewClonesResource() resource.Resource
- func NewClonesUnmapResource() resource.Resource
- func NewHostsDataSource() datasource.DataSource
- func NewMobilityGroupInstanceDataSource() datasource.DataSource
- func NewMobilityGroupsCopyResource() resource.Resource
- func NewMobilityGroupsDataSource() datasource.DataSource
- func NewMobilityGroupsResource() resource.Resource
- func NewMobilityTargetInstanceDataSource() datasource.DataSource
- func NewMobilityTargetsDataSource() datasource.DataSource
- func NewMobilityTargetsResource() resource.Resource
- func NewPoolsDataSource() datasource.DataSource
- func NewStorageProductOptionsDataSource() datasource.DataSource
- func NewStorageProductsDataSource() datasource.DataSource
- func NewVolumesDataSource() datasource.DataSource
- type BlockStorageModel
- type Clients
- type ClonesMapModel
- type ClonesModel
- type MobilityGroupCopyModel
- type MobilityGroupModel
- type MobilityTargetModel
Constants ¶
const JobRetrieveError = "Could not retrieve job, unexpected error: "
JobRetrieveError is the Error message for retrieveing job ID failure
const ResourceRetrieveError = "Could not retrieve resourceID, unexpected error: "
ResourceRetrieveError is the Error message for retrieveing resource ID failure
Variables ¶
var BlockStorageDataSourceSchema schema.Schema = schema.Schema{ Attributes: map[string]schema.Attribute{ "id": schema.StringAttribute{ MarkdownDescription: "Unique Host Claim ID", Optional: true, }, "system_id": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "system_type": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "bandwidth": schema.Int64Attribute{ MarkdownDescription: " ", Computed: true, }, "capacity_impact": schema.Int64Attribute{ MarkdownDescription: " ", Computed: true, }, "capacity_issue_count": schema.Int64Attribute{ MarkdownDescription: " ", Computed: true, }, "compression_savings": schema.Float64Attribute{ MarkdownDescription: " ", Computed: true, }, "configuration_impact": schema.Int64Attribute{ MarkdownDescription: " ", Computed: true, }, "configuration_issue_count": schema.Int64Attribute{ MarkdownDescription: " ", Computed: true, }, "configured_size": schema.Int64Attribute{ MarkdownDescription: " ", Computed: true, }, "connectivity_status": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "license_type": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "license_expiration_date_timestamp": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "contract_coverage_type": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "contract_expiration_date_timestamp": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "data_protection_impact": schema.Int64Attribute{ MarkdownDescription: " ", Computed: true, }, "data_protection_issue_count": schema.Int64Attribute{ MarkdownDescription: " ", Computed: true, }, "display_identifier": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "free_percent": schema.Float64Attribute{ MarkdownDescription: " ", Computed: true, }, "free_size": schema.Int64Attribute{ MarkdownDescription: " ", Computed: true, }, "health_connectivity_status": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "health_issue_count": schema.Int64Attribute{ MarkdownDescription: " ", Computed: true, }, "health_score": schema.Int64Attribute{ MarkdownDescription: " ", Computed: true, }, "health_state": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "iops": schema.Int64Attribute{ MarkdownDescription: " ", Computed: true, }, "ipv4_address": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "ipv6_address": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "last_contact_timestamp": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "latency": schema.Int64Attribute{ MarkdownDescription: " ", Computed: true, }, "logical_size": schema.Int64Attribute{ MarkdownDescription: " ", Computed: true, }, "model": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "name": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "overall_efficiency": schema.Float64Attribute{ MarkdownDescription: " ", Computed: true, }, "performance_impact": schema.Int64Attribute{ MarkdownDescription: " ", Computed: true, }, "performance_issue_count": schema.Int64Attribute{ MarkdownDescription: " ", Computed: true, }, "serial_number": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "site_name": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "snaps_savings": schema.Float64Attribute{ MarkdownDescription: " ", Computed: true, }, "system_health_impact": schema.Int64Attribute{ MarkdownDescription: " ", Computed: true, }, "system_health_issue_count": schema.Int64Attribute{ MarkdownDescription: " ", Computed: true, }, "thin_savings": schema.Float64Attribute{ MarkdownDescription: " ", Computed: true, }, "total_size": schema.Int64Attribute{ MarkdownDescription: " ", Computed: true, }, "unconfigured_size": schema.Int64Attribute{ MarkdownDescription: " ", Computed: true, }, "used_percent": schema.Float64Attribute{ MarkdownDescription: " ", Computed: true, }, "used_size": schema.Int64Attribute{ MarkdownDescription: " ", Computed: true, }, "vendor": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "product_version": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "version": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "cirrus_deployed": schema.BoolAttribute{ MarkdownDescription: " ", Optional: true, }, "deployment_details": schema.SingleNestedAttribute{ Computed: true, Attributes: map[string]schema.Attribute{ "system_on_prem": schema.SingleNestedAttribute{ Computed: true, Attributes: map[string]schema.Attribute{ "deployment_type": schema.StringAttribute{ Computed: true, }, "site_name": schema.StringAttribute{ Computed: true, }, "location": schema.StringAttribute{ Computed: true, }, "country": schema.StringAttribute{ Computed: true, }, "state": schema.StringAttribute{ Computed: true, }, "city": schema.StringAttribute{ Computed: true, }, "street_address_1": schema.StringAttribute{ Computed: true, }, "street_address_2": schema.StringAttribute{ Computed: true, }, "zip_code": schema.StringAttribute{ Computed: true, }, }, }, "system_public_cloud": schema.SingleNestedAttribute{ Computed: true, Attributes: map[string]schema.Attribute{ "deployment_type": schema.StringAttribute{ Computed: true, }, "cloud_type": schema.StringAttribute{ Computed: true, }, "cloud_account": schema.StringAttribute{ Computed: true, }, "cloud_region": schema.StringAttribute{ Computed: true, }, "availability_zone_topology": schema.StringAttribute{ Computed: true, }, "virtual_private_cloud": schema.StringAttribute{ Computed: true, }, "cloud_management_address": schema.StringAttribute{ Computed: true, }, "minimum_iops": schema.Int64Attribute{ Computed: true, }, "minimum_capacity": schema.Int64Attribute{ Computed: true, }, "tier_type": schema.StringAttribute{ Computed: true, }, "ssh_key_name": schema.StringAttribute{ Computed: true, }, "vpc": schema.SingleNestedAttribute{ 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{ 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, }, }, }, }, }, }, }, }, }, }, }, }, }
BlockStorageDataSourceSchema defines the schema for a storage system instance data source and its attributes are used in storage systems collection data source
var ClonesDataSourceSchema schema.Schema = schema.Schema{ Attributes: map[string]schema.Attribute{ "id": schema.StringAttribute{ MarkdownDescription: "", Optional: true, }, "name": schema.StringAttribute{ MarkdownDescription: "Name of the clone", Computed: true, }, "description": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "mobility_target_id": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "creation_timestamp": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "refresh_timestamp": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "image_timestamp": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "clone_volumes": schema.ListNestedAttribute{ Computed: true, NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "id": schema.StringAttribute{ Computed: true, }, "parent_id": schema.StringAttribute{ Computed: true, }, "name": schema.StringAttribute{ Computed: true, }, "size": schema.StringAttribute{ Computed: true, }, }, }, }, "host_mappings": schema.ListNestedAttribute{ Computed: true, NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "host_name": schema.StringAttribute{ Computed: true, }, "host_ip": schema.StringAttribute{ Computed: true, }, "host_id": schema.StringAttribute{ Computed: true, }, "id": schema.StringAttribute{ Computed: true, }, "nqn": schema.StringAttribute{ Computed: true, }, "host_initiator_protocol": schema.StringAttribute{ Computed: true, }, }, }, }, }, }
ClonesDataSourceSchema defines tha acceptable confirguation and state attribute names and types
var MobilityGroupsDataSourceSchema schema.Schema = schema.Schema{ Attributes: map[string]schema.Attribute{ "id": schema.StringAttribute{ MarkdownDescription: "Unique Host Claim ID", Optional: true, }, "name": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "description": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "system_id": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "system_type": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "creation_timestamp": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "volume_id": schema.ListAttribute{ ElementType: types.StringType, Computed: true, }, "members": schema.ListNestedAttribute{ Computed: true, NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "id": schema.StringAttribute{ Computed: true, }, "name": schema.StringAttribute{ Computed: true, }, "size": schema.StringAttribute{ Computed: true, }, }, }, }, }, }
MobilityGroupsDataSourceSchema defines the acceptable configuration and state attributes names and types
var MobilityTargetsDataSourceSchema schema.Schema = schema.Schema{ Attributes: map[string]schema.Attribute{ "id": schema.StringAttribute{ MarkdownDescription: "Unique Host Claim ID", Optional: true, }, "name": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "description": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "system_id": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "system_type": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "source_mobility_group_id": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "creation_timestamp": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "image_timestamp": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "target_members": schema.ListNestedAttribute{ Computed: true, NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "id": schema.StringAttribute{ Computed: true, }, "parent_id": schema.StringAttribute{ Computed: true, }, "name": schema.StringAttribute{ Computed: true, }, "size": schema.StringAttribute{ Computed: true, }, }, }, }, "last_copy_job_id": schema.StringAttribute{ MarkdownDescription: " ", Computed: true, }, "bandwidth_limit": schema.Int64Attribute{ MarkdownDescription: " ", Computed: true, }, "target_system_options": schema.StringAttribute{ Computed: true, }, "type": schema.StringAttribute{ Optional: true, }, }, }
MobilityTargetsDataSourceSchema defines tha acceptable confirguation and state attribute names and types
Functions ¶
func GetErrorString ¶
GetErrorString returns the error string from the response
func NewBlockStorageInstanceDataSource ¶
func NewBlockStorageInstanceDataSource() datasource.DataSource
NewBlockStorageInstanceDataSource is a block storage data source object
func NewBlockStorageResource ¶
NewBlockStorageResource returns a storage system resource object
func NewBlockStoragesDataSource ¶
func NewBlockStoragesDataSource() datasource.DataSource
NewBlockStoragesDataSource is a block storage data source object
func NewCloneInstancesDataSource ¶
func NewCloneInstancesDataSource() datasource.DataSource
NewCloneInstancesDataSource returns a new clone data source instance.
func NewClonesDataSource ¶
func NewClonesDataSource() datasource.DataSource
NewClonesDataSource returns a new clones data source instance.
func NewClonesMapResource ¶
NewClonesMapResource returns a storage system resource object
func NewClonesRefreshResource ¶
NewClonesRefreshResource returns a storage system resource object
func NewClonesResource ¶
NewClonesResource is a helper function to simplify the provider implementation.
func NewClonesUnmapResource ¶
NewClonesUnmapResource returns a storage system resource object
func NewHostsDataSource ¶
func NewHostsDataSource() datasource.DataSource
NewHostsDataSource returns a new hosts data source instance.
func NewMobilityGroupInstanceDataSource ¶
func NewMobilityGroupInstanceDataSource() datasource.DataSource
NewMobilityGroupInstanceDataSource is a storage system data source object
func NewMobilityGroupsCopyResource ¶
NewMobilityGroupsCopyResource returns a storage system resource object
func NewMobilityGroupsDataSource ¶
func NewMobilityGroupsDataSource() datasource.DataSource
NewMobilityGroupsDataSource is a storage system data source object
func NewMobilityGroupsResource ¶
NewMobilityGroupsResource returns a storage system resource object
func NewMobilityTargetInstanceDataSource ¶
func NewMobilityTargetInstanceDataSource() datasource.DataSource
NewMobilityTargetInstanceDataSource is a storage system data source object
func NewMobilityTargetsDataSource ¶
func NewMobilityTargetsDataSource() datasource.DataSource
NewMobilityTargetsDataSource is a storage system data source object
func NewMobilityTargetsResource ¶
NewMobilityTargetsResource returns a storage system resource object
func NewPoolsDataSource ¶
func NewPoolsDataSource() datasource.DataSource
NewPoolsDataSource returns a new pools data source instance.
func NewStorageProductOptionsDataSource ¶
func NewStorageProductOptionsDataSource() datasource.DataSource
NewStorageProductOptionsDataSource returns a new storage products data source instance.
func NewStorageProductsDataSource ¶
func NewStorageProductsDataSource() datasource.DataSource
NewStorageProductsDataSource returns a new storage products data source instance.
func NewVolumesDataSource ¶
func NewVolumesDataSource() datasource.DataSource
NewVolumesDataSource returns a new volumes data source instance.
Types ¶
type BlockStorageModel ¶
type BlockStorageModel struct { ID types.String `tfsdk:"id"` SystemID types.String `tfsdk:"system_id"` SystemType types.String `tfsdk:"system_type"` Bandwidth types.Int64 `tfsdk:"bandwidth"` CapacityImpact types.Int64 `tfsdk:"capacity_impact"` CapacityIssueCount types.Int64 `tfsdk:"capacity_issue_count"` CompressionSavings types.Float64 `tfsdk:"compression_savings"` ConfigurationImpact types.Int64 `tfsdk:"configuration_impact"` ConfigurationIssueCount types.Int64 `tfsdk:"configuration_issue_count"` ConfiguredSize types.Int64 `tfsdk:"configured_size"` ConnectivityStatus types.String `tfsdk:"connectivity_status"` LicenseType types.String `tfsdk:"license_type"` LicenseExpirationDateTimestamp types.String `tfsdk:"license_expiration_date_timestamp"` ContractCoverageType types.String `tfsdk:"contract_coverage_type"` ContractExpirationDateTimestamp types.String `tfsdk:"contract_expiration_date_timestamp"` DataProtectionImpact types.Int64 `tfsdk:"data_protection_impact"` DataProtectionIssueCount types.Int64 `tfsdk:"data_protection_issue_count"` DisplayIdentifier types.String `tfsdk:"display_identifier"` FreePercent types.Float64 `tfsdk:"free_percent"` FreeSize types.Int64 `tfsdk:"free_size"` HealthConnectivityStatus types.String `tfsdk:"health_connectivity_status"` HealthIssueCount types.Int64 `tfsdk:"health_issue_count"` HealthScore types.Int64 `tfsdk:"health_score"` HealthState types.String `tfsdk:"health_state"` Iops types.Int64 `tfsdk:"iops"` Ipv4Address types.String `tfsdk:"ipv4_address"` Ipv6Address types.String `tfsdk:"ipv6_address"` LastContactTimestamp types.String `tfsdk:"last_contact_timestamp"` Latency types.Int64 `tfsdk:"latency"` LogicalSize types.Int64 `tfsdk:"logical_size"` Model types.String `tfsdk:"model"` Name types.String `tfsdk:"name"` OverallEfficiency types.Float64 `tfsdk:"overall_efficiency"` PerformanceImpact types.Int64 `tfsdk:"performance_impact"` PerformanceIssueCount types.Int64 `tfsdk:"performance_issue_count"` SerialNumber types.String `tfsdk:"serial_number"` SiteName types.String `tfsdk:"site_name"` SnapsSavings types.Float64 `tfsdk:"snaps_savings"` SystemHealthImpact types.Int64 `tfsdk:"system_health_impact"` SystemHealthIssueCount types.Int64 `tfsdk:"system_health_issue_count"` ThinSavings types.Float64 `tfsdk:"thin_savings"` TotalSize types.Int64 `tfsdk:"total_size"` UnconfiguredSize types.Int64 `tfsdk:"unconfigured_size"` UsedPercent types.Float64 `tfsdk:"used_percent"` UsedSize types.Int64 `tfsdk:"used_size"` Vendor types.String `tfsdk:"vendor"` ProductVersion types.String `tfsdk:"product_version"` Version types.String `tfsdk:"version"` DeploymentDetails *deploymentDetailsModel `tfsdk:"deployment_details"` CirrusDeployed types.Bool `tfsdk:"cirrus_deployed"` }
BlockStorageModel maps storage system schema data.
func GetBlockStorageSystem ¶
func GetBlockStorageSystem(storageSystem client.StorageSystemsInstance) (blockStorageState BlockStorageModel)
GetBlockStorageSystem returns a storage systems model based on the given storage system instance
type ClonesMapModel ¶
type ClonesMapModel struct { ID types.String `tfsdk:"id"` CloneID types.String `tfsdk:"clone_id"` HostMappings []types.String `tfsdk:"host_mappings"` Status types.String `tfsdk:"status"` }
ClonesMapModel defines the attribute names and types for a Clones Map TF model
type ClonesModel ¶
type ClonesModel struct { ID types.String `tfsdk:"id"` Name types.String `tfsdk:"name"` Description types.String `tfsdk:"description"` MobilityTargetID types.String `tfsdk:"mobility_target_id"` CreationTimestamp types.String `tfsdk:"creation_timestamp"` RefreshTimestamp types.String `tfsdk:"refresh_timestamp"` ImageTimestamp types.String `tfsdk:"image_timestamp"` CloneVolumes basetypes.ListValue `tfsdk:"clone_volumes"` HostMappings basetypes.ListValue `tfsdk:"host_mappings"` }
ClonesModel defines the attribute names and types for a Clones TF model
func GetClonesModel ¶
func GetClonesModel(clone client.Clone) (model ClonesModel)
GetClonesModel returns a new clonesModel based on data from the given clones
type MobilityGroupCopyModel ¶
type MobilityGroupCopyModel struct { ID types.String `tfsdk:"id"` MobilitySourceID types.String `tfsdk:"mobility_source_id"` MobilityTargetID []types.String `tfsdk:"mobility_target_id"` Status types.String `tfsdk:"status"` }
MobilityGroupCopyModel defines the attribute names and types for a Mobility Target TF model
type MobilityGroupModel ¶
type MobilityGroupModel struct { ID types.String `tfsdk:"id"` Name types.String `tfsdk:"name"` Description types.String `tfsdk:"description"` SystemID types.String `tfsdk:"system_id"` SystemType *client.StorageSystemTypeEnum `tfsdk:"system_type"` CreationTimeStamp types.String `tfsdk:"creation_timestamp"` Members basetypes.ListValue `tfsdk:"members"` VolumeID []types.String `tfsdk:"volume_id"` }
MobilityGroupModel defines the attribute names and types for a Mobility Target TF model
func GetMobilityGroupModel ¶
func GetMobilityGroupModel(mobilityGroup client.MobilityGroup) (model MobilityGroupModel)
GetMobilityGroupModel returns a new mobilityGroupModel based on data from the given mobilityGroup
type MobilityTargetModel ¶
type MobilityTargetModel struct { ID types.String `tfsdk:"id"` Name types.String `tfsdk:"name"` Description types.String `tfsdk:"description"` SystemID types.String `tfsdk:"system_id"` SystemType *client.StorageSystemTypeEnum `tfsdk:"system_type"` SourceMobilityGroupID types.String `tfsdk:"source_mobility_group_id"` CreationTimestamp types.String `tfsdk:"creation_timestamp"` ImageTimestamp types.String `tfsdk:"image_timestamp"` LastCopyJobID types.String `tfsdk:"last_copy_job_id"` TargetMembers basetypes.ListValue `tfsdk:"target_members"` TargetSystemOptions types.String `tfsdk:"target_system_options"` BandwidthLimit types.Int64 `tfsdk:"bandwidth_limit"` Type types.String `tfsdk:"type"` }
MobilityTargetModel defines the attribute names and types for a Mobility Target TF model
func GetMobilityTargetModel ¶
func GetMobilityTargetModel(mobilityTarget client.MobilityTarget) (model MobilityTargetModel)
GetMobilityTargetModel creates a new MobilityTargetModel based on the provided mobilityTarget
Source Files ¶
- block_storage_models.go
- clones_map_model.go
- clones_model.go
- data_source_block_storage_collection.go
- data_source_block_storage_instance.go
- data_source_block_storage_schema.go
- data_source_clones_collection.go
- data_source_clones_instance.go
- data_source_clones_schema.go
- data_source_hosts.go
- data_source_mobility_group_instance.go
- data_source_mobility_groups_collection.go
- data_source_mobility_groups_schema.go
- data_source_mobility_target_instance.go
- data_source_mobility_targets_collection.go
- data_source_mobility_targets_schema.go
- data_source_pools.go
- data_source_storage_product_options.go
- data_source_storage_products.go
- data_source_volumes.go
- get_error_string.go
- mobility_groups_copy_model.go
- mobility_groups_models.go
- mobility_target_models.go
- provider.go
- resource_block_storage.go
- resource_clones.go
- resource_clones_map.go
- resource_clones_refresh.go
- resource_clones_unmap.go
- resource_mobility_groups.go
- resource_mobility_groups_copy.go
- resource_mobility_targets.go