staticnat

package
v1.0.2 Latest Latest
Warning

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

Go to latest
Published: Oct 22, 2025 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var NetworkPublicIPStaticNatCmd = &cobra.Command{
	Use:   "staticnat",
	Short: "Manage static NAT for public IPs in a network",
	Long:  `Enable or disable static NAT for public IPs in a network.`,
}

NetworkPublicIPStaticNatCmd represents the staticnat subgroup under network public ip

View Source
var NetworkPublicIPStaticNatDisableCmd = &cobra.Command{
	Use:   "disable",
	Short: "Disable static NAT for a public IP",
	PreRunE: func(cmd *cobra.Command, args []string) error {

		if err := cli.Preflight(true)(cmd, args); err != nil {
			return err
		}

		return cli.Validate(cmd,
			cli.Required("networkId"),
			cli.Required("networkPublicIpId"),
		)
	},
	RunE: func(cmd *cobra.Command, args []string) error {
		token := cli.TokenFromContext(cmd.Context())
		zoneID := cli.ZoneIDFromContext(cmd.Context())

		if err := cli.LoadFromCobraFlags(cmd, &disableOpts); err != nil {
			return err
		}

		httpClient := http.NewClient(token)

		resp, err := httpClient.DisableNetworkPublicIpStaticNat(zoneID, disableOpts.NetworkID, disableOpts.NetworkPublicIPID)
		if err != nil {
			slog.Error("failed to disable static NAT", "error", err)
			return fmt.Errorf("error: %w", err)
		}

		if resp.Data.Success {
			slog.Info("static NAT disable operation completed successfully")
			fmt.Println("Static NAT disable started successfully.")
		} else {
			slog.Error("static NAT disable unsuccessful", "response", resp)
			return fmt.Errorf("failed to start static NAT disable")
		}
		return nil
	},
}

NetworkPublicIPStaticNatDisableCmd represents the disable subcommand

View Source
var NetworkPublicIPStaticNatEnableCmd = &cobra.Command{
	Use:   "enable",
	Short: "Enable static NAT for a public IP",
	PreRunE: func(cmd *cobra.Command, args []string) error {

		if err := cli.Preflight(true)(cmd, args); err != nil {
			return err
		}

		return cli.Validate(cmd,
			cli.Required("networkId"),
			cli.Required("networkPublicIpId"),
			cli.Required("instanceId"),
		)
	},
	RunE: func(cmd *cobra.Command, args []string) error {
		token := cli.TokenFromContext(cmd.Context())
		zoneID := cli.ZoneIDFromContext(cmd.Context())

		if err := cli.LoadFromCobraFlags(cmd, &enableOpts); err != nil {
			return err
		}

		httpClient := http.NewClient(token)

		resp, err := httpClient.EnableNetworkPublicIpStaticNat(zoneID, enableOpts.NetworkID, enableOpts.NetworkPublicIPID, enableOpts.InstanceID)
		if err != nil {
			slog.Error("failed to enable static NAT", "error", err)
			return fmt.Errorf("error: %w", err)
		}

		if resp.Data.Success {
			slog.Info("static NAT enable operation completed successfully")
			fmt.Println("Static NAT enable started successfully.")
		} else {
			slog.Error("static NAT enable unsuccessful", "response", resp)
			return fmt.Errorf("failed to start static NAT enable")
		}
		return nil
	},
}

NetworkPublicIPStaticNatEnableCmd represents the enable subcommand

Functions

This section is empty.

Types

This section is empty.

Jump to

Keyboard shortcuts

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