Menu

Go SDK — Support

SupportServiceClient manages org-scoped tickets. Every org member sees all tickets for the organization.

Create a ticket

support := supportv1connect.NewSupportServiceClient(httpClient, base)
resp, err := support.CreateTicket(ctx, connect.NewRequest(
    &supportv1.CreateTicketRequest{
        OrganizationName: "organizations/my-org",
        Subject:          "Quota increase request",
        Body:             "Need 50 VMs in projects/prod for load test.",
        Category:         supportv1.TicketCategory_TICKET_CATEGORY_BILLING,
        Priority:         supportv1.TicketPriority_TICKET_PRIORITY_NORMAL,
        ResourceRefs: []*supportv1.ResourceRef{{
            Type: "vm", Id: "web-1", Display: "web-1",
        }},
    },
))
ticket := resp.Msg.GetTicket()

List and get

support.ListTickets(ctx, connect.NewRequest(&supportv1.ListTicketsRequest{
    OrganizationName: org,
    PageSize: 50,
}))
support.GetTicket(ctx, connect.NewRequest(&supportv1.GetTicketRequest{
    Name: "organizations/my-org/tickets/tkt_abc",
}))

ListTickets excludes closed tickets by default. Pass StatusFilter to include closed.

Reply and close

support.ReplyTicket(ctx, connect.NewRequest(&supportv1.ReplyTicketRequest{
    Name: ticketName, Body: "Still seeing the issue after reboot.",
}))
support.CloseTicket(ctx, connect.NewRequest(&supportv1.CloseTicketRequest{
    Name: ticketName,
}))

Categories

EnumUse for
TICKET_CATEGORY_TECHNICALVM, network, connectivity issues
TICKET_CATEGORY_BILLINGWallet, invoices, quota requests
TICKET_CATEGORY_ABUSEReport abuse
TICKET_CATEGORY_FEATUREProduct feedback

What's next