Skip to content

azurermOrbitalContactProfile

Manages a Contact profile.

Example Usage

/*Provider bindings are generated by running cdktf get.
See https://cdk.tf/provider-generation for more details.*/
import * as azurerm from "./.gen/providers/azurerm";
/*The following providers are missing schema information and might need manual adjustments to synthesize correctly: azurerm.
For a more precise conversion please use the --provider flag in convert.*/
const azurermResourceGroupExample = new azurerm.resourceGroup.ResourceGroup(
  this,
  "example",
  {
    location: "West Europe",
    name: "rg-example",
  }
);
const azurermVirtualNetworkExample = new azurerm.virtualNetwork.VirtualNetwork(
  this,
  "example_1",
  {
    address_space: ["10.0.0.0/16"],
    location: "${azurerm_resource_group.test.location}",
    name: "testvnet",
    resource_group_name: "${azurerm_resource_group.test.name}",
  }
);
/*This allows the Terraform resource name to match the original name. You can remove the call if you don't need them to match.*/
azurermVirtualNetworkExample.overrideLogicalId("example");
const azurermSubnetExample = new azurerm.subnet.Subnet(this, "example_2", {
  address_prefixes: ["10.0.1.0/24"],
  delegation: [
    {
      name: "orbitalgateway",
      service_delegation: [
        {
          actions: [
            "Microsoft.Network/publicIPAddresses/join/action",
            "Microsoft.Network/virtualNetworks/subnets/join/action",
            "Microsoft.Network/virtualNetworks/read",
            "Microsoft.Network/publicIPAddresses/read",
          ],
          name: "Microsoft.Orbital/orbitalGateways",
        },
      ],
    },
  ],
  name: "testsubnet",
  resource_group_name: azurermResourceGroupExample.name,
  virtual_network_name: azurermVirtualNetworkExample.name,
});
/*This allows the Terraform resource name to match the original name. You can remove the call if you don't need them to match.*/
azurermSubnetExample.overrideLogicalId("example");
const azurermOrbitalContactProfileExample =
  new azurerm.orbitalContactProfile.OrbitalContactProfile(this, "example_3", {
    auto_tracking: "disabled",
    links: [
      {
        channels: [
          {
            bandwidth_mhz: 100,
            center_frequency_mhz: 101,
            end_point: [
              {
                end_point_name: "AQUA_command",
                ip_address: "10.0.1.0",
                port: "49513",
                protocol: "TCP",
              },
            ],
            name: "channelname",
          },
        ],
        direction: "Uplink",
        name: "RHCP_UL",
        polarization: "RHCP",
      },
    ],
    location: "${azurerm_resource_group.test.location}",
    minimum_variable_contact_duration: "PT1M",
    name: "example-contact-profile",
    network_configuration_subnet_id: azurermSubnetExample.id,
    resource_group_name: "${azurerm_resource_group.test.name}",
  });
/*This allows the Terraform resource name to match the original name. You can remove the call if you don't need them to match.*/
azurermOrbitalContactProfileExample.overrideLogicalId("example");

Arguments Reference

The following arguments are supported:

  • name - (Required) The name of the contact profile. Changing this forces a new resource to be created.

  • resourceGroupName - (Required) The name of the Resource Group where the contact profile exists. Changing this forces a new resource to be created.

  • location - (Required) The location where the contact profile exists. Changing this forces a new resource to be created.

  • minimumVariableContactDuration - (Required) Minimum viable contact duration in ISO 8601 format. Used for listing the available contacts with a spacecraft at a given ground station.

  • autoTracking - (Required) Auto-tracking configurations for a spacecraft. Possible values are disabled, xBand and sBand.

  • networkConfigurationSubnetId - (Required) ARM resource identifier of the subnet delegated to the Microsoft.Orbital/orbitalGateways. Needs to be at least a class C subnet, and should not have any IP created in it. Changing this forces a new resource to be created.

  • links - (Required) A list of spacecraft links. A links block as defined below. Changing this forces a new resource to be created.

  • eventHubUri - (Optional) ARM resource identifier of the Event Hub used for telemetry. Requires granting Orbital Resource Provider the rights to send telemetry into the hub.

  • minimumElevationDegrees - (Optional) Maximum elevation of the antenna during the contact in decimal degrees.

  • tags - (Optional) A mapping of tags to assign to the resource.


A links block supports the following:

  • channels - (Required) A list of contact profile link channels. A channels block as defined below. Changing this forces a new resource to be created.

  • direction - (Required) Direction of the link. Possible values are uplink and downlink.

  • name - (Required) Name of the link.

  • polarization - (Required) Polarization of the link. Possible values are lhcp, rhcp, linearVertical and linearHorizontal.


A channels block supports the following:

  • name - (Required) Name of the channel.

  • centerFrequencyMhz - (Required) Center frequency in MHz.

  • bandwidthMhz - (Required) Bandwidth in MHz.

  • endPoint - (Required) Customer End point to store/retrieve data during a contact. An endPoint block as defined below.

  • modulationConfiguration - (Optional) Copy of the modem configuration file such as Kratos QRadio. Only valid for uplink directions. If provided, the modem connects to the customer endpoint and accepts commands from the customer instead of a VITA.49 stream.

  • demodulationConfiguration - (Optional) Copy of the modem configuration file such as Kratos QRadio or Kratos QuantumRx. Only valid for downlink directions. If provided, the modem connects to the customer endpoint and sends demodulated data instead of a VITA.49 stream.


An endPoint block supports the following:

  • endPointName - (Required) Name of an end point.

  • ipAddress - (Required) IP address of an end point.

  • port - (Required) TCP port to listen on to receive data.

  • protocol - (Required) Protocol of an end point. Possible values are tcp and udp.


Attribute Reference

In addition to the Arguments listed above - the following attributes are exported:

  • id - The ID of the contact profile.

Timeouts

The timeouts block allows you to specify timeouts for certain actions:

  • create - (Defaults to 30 minutes) Used when creating the Contact profile.
  • read - (Defaults to 5 minutes) Used when retrieving the Contact profile.
  • update - (Defaults to 30 minutes) Used when updating the Contact profile.
  • delete - (Defaults to 30 minutes) Used when deleting the Contact profile.

Import

Contact profile can be imported using the resourceId, e.g.

terraform import azurerm_orbital_contact_profile.example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Orbital/contactProfiles/contactProfile1