Skip to content

set_security_groups

set_security_groups(
    *,
    config_overrides: Optional[ElasticLoadBalancingv2ClientConfig] = None,
    load_balancer_arn: Optional[LoadBalancerArn] = None,
    security_groups: Optional[SecurityGroups] = None,
    enforce_security_group_inbound_rules_on_private_link_traffic: Optional[
        EnforceSecurityGroupInboundRulesOnPrivateLinkTrafficEnum
    ] = None,
) -> SetSecurityGroupsOutput

Associates the specified security groups with the specified Application Load Balancer or Network Load Balancer. The specified security groups override the previously associated security groups.

You can't perform this operation on a Network Load Balancer unless you specified a security group for the load balancer when you created it.

You can't associate a security group with a Gateway Load Balancer.

Parameters:

  • load_balancer_arn (Optional[LoadBalancerArn], default: None ) –

    The Amazon Resource Name (ARN) of the load balancer.

  • security_groups (Optional[SecurityGroups], default: None ) –

    The IDs of the security groups.

  • enforce_security_group_inbound_rules_on_private_link_traffic (Optional[EnforceSecurityGroupInboundRulesOnPrivateLinkTrafficEnum], default: None ) –

    Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through Amazon Web Services PrivateLink. Applies only if the load balancer has an associated security group. The default is on.

Raises:

Examples:

To associate a security group with a load balancer This example associates the specified security group with the specified load balancer.

>>> client.set_security_groups(load_balancer_arn='arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188', security_groups=['sg-5943793c'])
Source code in docs_src/capo_elastic_load_balancing_v2/_services/elastic_load_balancingv2.py
def set_security_groups(
    self,
    *,
    config_overrides: Optional[ElasticLoadBalancingv2ClientConfig] = None,
    load_balancer_arn: Optional[
        "capo_elastic_load_balancing_v2.types.load_balancer_arn.LoadBalancerArn"
    ] = None,
    security_groups: Optional[
        "capo_elastic_load_balancing_v2.types.security_groups.SecurityGroups"
    ] = None,
    enforce_security_group_inbound_rules_on_private_link_traffic: Optional[
        "capo_elastic_load_balancing_v2.types.enforce_security_group_inbound_rules_on_private_link_traffic_enum.EnforceSecurityGroupInboundRulesOnPrivateLinkTrafficEnum"
    ] = None,
) -> "capo_elastic_load_balancing_v2.types.set_security_groups_output.SetSecurityGroupsOutput":
    """<p>Associates the specified security groups with the specified Application Load Balancer or Network Load Balancer. The specified security groups override the previously associated security groups.</p> <p>You can't perform this operation on a Network Load Balancer unless you specified a security group for the load balancer when you created it.</p> <p>You can't associate a security group with a Gateway Load Balancer.</p>

    Args:
        load_balancer_arn: <p>The Amazon Resource Name (ARN) of the load balancer.</p>
        security_groups: <p>The IDs of the security groups.</p>
        enforce_security_group_inbound_rules_on_private_link_traffic: <p>Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through Amazon Web Services PrivateLink. Applies only if the load balancer has an associated security group. The default is <code>on</code>.</p>

    Raises:
        capo_elastic_load_balancing_v2.errors.invalid_configuration_request_exception.InvalidConfigurationRequestException: <p>The requested configuration is not valid.</p>
        capo_elastic_load_balancing_v2.errors.invalid_security_group_exception.InvalidSecurityGroupException: <p>The specified security group does not exist.</p>
        capo_elastic_load_balancing_v2.errors.load_balancer_not_found_exception.LoadBalancerNotFoundException: <p>The specified load balancer does not exist.</p>
        capo_elastic_load_balancing_v2.errors.UnknownServiceError: The service returned an error code this client does not model.

    Examples:
        To associate a security group with a load balancer
        This example associates the specified security group with the specified load balancer.

        >>> client.set_security_groups(load_balancer_arn='arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188', security_groups=['sg-5943793c'])
    """

    def _handler(
        req: "OperationRequest[capo_elastic_load_balancing_v2.types.set_security_groups_input.SetSecurityGroupsInput]",
    ) -> OperationResponse[
        "capo_elastic_load_balancing_v2.types.set_security_groups_output.SetSecurityGroupsOutput"
    ]:
        import capo_elastic_load_balancing_v2._operations.elastic_load_balancing_v10.set_security_groups

        output, http_response = (
            capo_elastic_load_balancing_v2._operations.elastic_load_balancing_v10.set_security_groups.set_security_groups(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("SetSecurityGroups")
    )
    input_: capo_elastic_load_balancing_v2.types.set_security_groups_input.SetSecurityGroupsInput = {}
    if load_balancer_arn is not None:
        input_["load_balancer_arn"] = load_balancer_arn
    if security_groups is not None:
        input_["security_groups"] = security_groups
    if enforce_security_group_inbound_rules_on_private_link_traffic is not None:
        input_["enforce_security_group_inbound_rules_on_private_link_traffic"] = (
            enforce_security_group_inbound_rules_on_private_link_traffic
        )

    response = execute_pipeline(
        OperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    response.response.close()
    return response.output