Help us shape the future of Go! Take the 2026 Go Developer Survey

group

package
v0.9.9 Latest Latest
Warning

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

Go to latest
Published: Sep 4, 2026 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Delete

func Delete(client *golangsdk.ServiceClient, groupId string) error

This function is used to delete a security group.

Types

type CreateOpts

type CreateOpts struct {
	// Whether to only send the check request.
	// The value can be:
	// - true: The request will be checked and the security group will not be created.
	//         Check items include mandatory parameters, request format, and constraints.
	//         If the check fails, the system returns an error.
	//         If the check succeeds, response code 202 will be returned.
	// - false (default): A request will be sent and a security group will be created.
	DryRun bool `json:"dry_run,omitempty"`
	// Request body for creating a security group.
	SecurityGroup SecurityGroupOptions `json:"security_group" required:"true"`
}

type ListQueryParams

type ListQueryParams struct {
	// Specifies the number of records displayed on each page.
	// The value ranges from 1 to 2000.
	Limit int `q:"limit"`
	// Specifies the start resource ID of pagination query. If the parameter is left blank, only resources on the first page are queried.
	// The value is obtained from next_marker or previous_marker in PageInfo queried last time.
	Marker string `q:"marker"`
	// Specifies the Security group ID.
	Id []string `q:"id"`
	// Specifies the Security group name.
	Name []string `q:"name"`
	// Specifies the supplementary information about the security group.
	// This field can be used to filter security groups. Multiple descriptions can be specified for filtering.
	Description []string `q:"description"`
	// Project ID
	ProjectId []string `q:"project_id"`
	// Specifies the Enterprise project ID. This field can be used to filter the security groups associated with an enterprise project.
	// The project ID can be 0 or a string that contains a maximum of 36 characters in UUID format with hyphens (-). 0 indicates the default enterprise project.
	// To obtain the security groups associated with all enterprise projects, specify all_granted_eps.
	EnterpriseProjectId []string `q:"enterprise_project_id"`
}

type ListResponse

type ListResponse struct {
	// Specifies the response body for querying security groups.
	SecurityGroups []SecurityGroupListObject `json:"security_groups"`
	// Request ID
	RequestID string `json:"request_id"`
	// Specifies the pagination information.
	PageInfo PageInfo `json:"page_info"`
}

func List

This function is used to query all security groups of a tenant.

type PageInfo

type PageInfo struct {
	// Specifies the ID of the last record in this query, which can be used in the next query.
	NextMarker string `json:"next_marker"`
	// Specifies the ID of the first record in the pagination query result.
	// When page_reverse is set to true, this parameter is used together to query resources on the previous page.
	PreviousMarker string `json:"previous_marker"`
	// Specifies the ID of the last record in the pagination query result. It is usually used to query resources on the next page. Value range: 1-200
	CurrentCount int `json:"current_count"`
}

type SecurityGroup

type SecurityGroup struct {
	// Security group ID, which uniquely identifies the security group.
	// The value is in UUID format with hyphens (-).
	ID string `json:"id"`
	// Security group name.
	// The value can contain 1 to 64 characters, including letters, digits, underscores (_), hyphens (-), and periods (.).
	Name string `json:"name"`
	// Description about the security group.
	// The value can contain up to 255 characters and cannot contain angle brackets (< or >).
	Description string `json:"description"`
	// ID of the project to which the security group belongs.
	ProjectID string `json:"project_id"`
	// Time when the security group was created.
	// The value is a UTC time in the format of yyyy-MM-ddTHH:mm:ssZ.
	CreatedAt string `json:"created_at"`
	// Time when the security group was updated.
	// The value is a UTC time in the format of yyyy-MM-ddTHH:mm:ssZ.
	UpdatedAt string `json:"updated_at"`
	// ID of the enterprise project to which the security group belongs.
	// The project ID can be 0 or a string that contains a maximum of 36 characters in UUID format with hyphens (-). 0 indicates the default enterprise project.
	EnterpriseProjectID string `json:"enterprise_project_id"`
	// Security group tags. For details, see the tag objects.
	// Value range: 0 to 20 key-value pairs.
	Tags []tags.ResourceTag `json:"tags"`
	// Security group rules.
	SecurityGroupRules []SecurityGroupRule `json:"security_group_rules"`
}

func Create

func Create(client *golangsdk.ServiceClient, opts CreateOpts) (*SecurityGroup, error)

This function is used to create a security group.

func Get

func Get(client *golangsdk.ServiceClient, groupId string) (*SecurityGroup, error)

This function is used to obtain details about a security group.

func Update

func Update(client *golangsdk.ServiceClient, groupId string, opts UpdateOpts) (*SecurityGroup, error)

This function is used to update a security group.

type SecurityGroupListObject

type SecurityGroupListObject struct {
	// Security group ID, which uniquely identifies the security group.
	// The value is in UUID format with hyphens (-).
	ID string `json:"id"`
	// Security group name.
	// The value can contain 1 to 64 characters, including letters, digits, underscores (_), hyphens (-), and periods (.).
	Name string `json:"name"`
	// Description about the security group.
	// The value can contain up to 255 characters and cannot contain angle brackets (< or >).
	Description string `json:"description"`
	// ID of the project to which the security group belongs.
	ProjectID string `json:"project_id"`
	// Time when the security group was created.
	// The value is a UTC time in the format of yyyy-MM-ddTHH:mm:ssZ.
	CreatedAt string `json:"created_at"`
	// Time when the security group was updated.
	// The value is a UTC time in the format of yyyy-MM-ddTHH:mm:ssZ.
	UpdatedAt string `json:"updated_at"`
	// ID of the enterprise project to which the security group belongs.
	// The project ID can be 0 or a string that contains a maximum of 36 characters in UUID format with hyphens (-). 0 indicates the default enterprise project.
	EnterpriseProjectID string `json:"enterprise_project_id"`
	// Security group tags. For details, see the tag objects.
	// Value range: 0 to 20 key-value pairs.
	Tags []tags.ResourceTag `json:"tags"`
}

type SecurityGroupOptions

type SecurityGroupOptions struct {
	// Security group name.
	// The value can contain 1 to 64 characters, including letters, digits, underscores (_), hyphens (-), and periods (.).
	Name string `json:"name" required:"true"`
	// Description about the security group.
	// The value can contain up to 255 characters and cannot contain angle brackets (< or >).
	Description string `json:"description,omitempty"`
	// Enterprise project ID.
	// When creating a security group, associate an enterprise project ID with the security group.
	// The project ID can be 0 or a string that contains a maximum of 36 characters in UUID format with hyphens (-).
	// 0 indicates the default enterprise project.
	EnterpriseProjectId string `json:"enterprise_project_id,omitempty"`
	// Security group tags. Value range: 0 to 20 key-value pairs.
	Tags []tags.ResourceTag `json:"tags,omitempty"`
}

type SecurityGroupResponse

type SecurityGroupResponse struct {
	// Request ID.
	RequestID string `json:"request_id"`
	// Response body for creating a security group.
	SecurityGroup SecurityGroup `json:"security_group"`
}

type SecurityGroupRule

type SecurityGroupRule struct {
	// Security group rule ID, which uniquely identifies the security group rule.
	// The value is in UUID format with hyphens (-).
	ID string `json:"id"`
	// Provides supplementary information about the security group rule.
	// The value can contain no more than 255 characters and cannot contain angle brackets (< or >).
	Description string `json:"description"`
	// ID of the security group to which the security group rule belongs.
	SecurityGroupID string `json:"security_group_id"`
	// Inbound or outbound direction of a security group rule.
	// The value can be: ingress or egress.
	Direction string `json:"direction"`
	// Protocol type.
	// The value can be icmp, tcp, udp, icmpv6, or an IP number.
	// If protocol is left blank, all protocols are supported.
	Protocol string `json:"protocol"`
	// IP version.
	// The value can be IPv4 or IPv6.
	// If you do not set this parameter, IPv4 is used by default.
	Ethertype string `json:"ethertype"`
	// Port or port range. Can be a single port (80), a port range (1-30), or non-consecutive ports separated by commas (22,3389,80).
	Multiport string `json:"multiport"`
	// Action of the security group rule.
	// The value can be: allow or deny.
	// The default value is deny.
	Action string `json:"action"`
	// Rule priority.
	// The value is from 1 to 100. The value 1 indicates the highest priority.
	Priority int `json:"priority"`
	// Time when the security group rule is created.
	// UTC time in the format of yyyy-MM-ddTHH:mm:ssZ.
	CreatedAt string `json:"created_at"`
	// Time when the security group rule is updated.
	// UTC time in the format of yyyy-MM-ddTHH:mm:ssZ.
	UpdatedAt string `json:"updated_at"`
	// ID of the project to which the security group rule belongs.
	ProjectID string `json:"project_id"`
	// ID of the remote security group, which allows or denies traffic to and from the security group.
	// Value range: ID of an existing security group.
	// Mutually exclusive with remote_ip_prefix and remote_address_group_id.
	RemoteGroupID string `json:"remote_group_id"`
	// Remote IP address or CIDR block.
	// If direction is egress: source IP; if ingress: destination IP.
	// Mutually exclusive with remote_group_id and remote_address_group_id.
	RemoteIPPrefix string `json:"remote_ip_prefix"`
	// ID of the remote IP address group.
	// Mutually exclusive with remote_ip_prefix and remote_group_id.
	RemoteAddressGroupID string `json:"remote_address_group_id"`
}

type SecurityGroupUpdateOptions

type SecurityGroupUpdateOptions struct {
	// Security group name.
	// The value can contain 1 to 64 characters, including letters, digits, underscores (_), hyphens (-), and periods (.).
	Name string `json:"name,omitempty"`
	// Description about the security group.
	// The value can contain up to 255 characters and cannot contain angle brackets (< or >).
	Description string `json:"description,omitempty"`
}

type UpdateOpts

type UpdateOpts struct {
	// Whether to only send the check request.
	// The value can be:
	// - true: The request will be checked and the security group will not be created.
	//         Check items include mandatory parameters, request format, and constraints.
	//         If the check fails, the system returns an error.
	//         If the check succeeds, response code 202 will be returned.
	// - false (default): A request will be sent and a security group will be created.
	DryRun bool `json:"dry_run,omitempty"`
	// Request body for creating a security group.
	SecurityGroup SecurityGroupUpdateOptions `json:"security_group" required:"true"`
}

Jump to

Keyboard shortcuts

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