sdk "github.com/aziontech/azionapi-go-sdk/edgefirewall"
Name string `json:"name"`
// Definir a URL do firewall como uma constante
firewallURL = "https://api.azionapi.net/"
// Estrutura Client para armazenar o cliente da API
// Solicitar o token pessoal do usuário
fmt.Println("Hey, there! Welcome to Edge Firewall example")
fmt.Println("Please, provide your Personal Token: ")
fmt.Scanf("%s", &personalToken)
// Manipular o firewall com o token fornecido
err := firewallHandler(personalToken)
// firewallHandler lida com as operações do firewall
func firewallHandler(personalToken string) error {
// Request the firewall name from the user
fmt.Println("Please, provide the Edge Firewall name: ")
reader := bufio.NewReader(os.Stdin)
firewallName, err := reader.ReadString('\n')
firewallName = strings.Replace(firewallName, "\n", "", -1)
// Criar um novo cliente e firewall
var httpClient *http.Client
client := NewClient(httpClient, firewallURL, personalToken)
err = client.NewFirewall(&firewallName)
// NewFirewall cria um novo firewall
func (c *Client) NewFirewall(firewallName *string) error {
ctx := context.Background()
// Criar uma nova requisição de firewall
firewall := new(sdk.CreateEdgeFirewallRequest)
firewall.Name = firewallName
fmt.Println("\nCreating Edge Firewall....\n")
// Executar a requisição do firewall
req := c.apiClient.DefaultAPI.EdgeFirewallPost(ctx).CreateEdgeFirewallRequest(*firewall)
_, httpResp, err := req.Execute()
// Ler e imprimir a resposta
bytes, err := io.ReadAll(httpResp.Body)
err = json.Unmarshal(bytes, &response)
fmt.Println("Edge Firewall succesfully created\n")
fmt.Println("Name: " + response.Results.Name)
fmt.Println("ID: " + strconv.Itoa(response.Results.ID) + "\n")
// NewClient cria um novo cliente com o cliente HTTP, URL e token fornecidos
func NewClient(httpClient *http.Client, url string, token string) *Client {
// Criar uma nova configuração
conf := sdk.NewConfiguration()
// Definir o cliente HTTP e os cabeçalhos
conf.HTTPClient = httpClient
conf.AddDefaultHeader("Authorization", "token "+token)
conf.AddDefaultHeader("Accept", "application/json;version=3")
conf.Servers = sdk.ServerConfigurations{
// Retornar um novo cliente com a configuração
apiClient: *sdk.NewAPIClient(conf),