Skip to content

create_wireless_gateway

create_wireless_gateway(
    lo_ra_wan: LoRaWANGateway,
    *,
    config_overrides: Optional[IoTWirelessClientConfig] = None,
    name: Optional[WirelessGatewayName] = None,
    description: Optional[Description] = None,
    tags: Optional[TagList] = None,
    client_request_token: Optional[ClientRequestToken] = None,
) -> CreateWirelessGatewayResponse

Provisions a wireless gateway.

When provisioning a wireless gateway, you might run into duplication errors for the following reasons.

  • If you specify a GatewayEui value that already exists.

  • If you used a ClientRequestToken with the same parameters within the last 10 minutes.

To avoid this error, make sure that you use unique identifiers and parameters for each request within the specified time period.

Parameters:

  • name (Optional[WirelessGatewayName], default: None ) –

    The name of the new resource.

    The following special characters aren't accepted: <>^#~$

  • description (Optional[Description], default: None ) –

    The description of the new resource.

  • lo_ra_wan (LoRaWANGateway) –

    The gateway configuration information to use to create the wireless gateway.

  • tags (Optional[TagList], default: None ) –

    The tags to attach to the new wireless gateway. Tags are metadata that you can use to manage a resource.

  • client_request_token (Optional[ClientRequestToken], default: None ) –

    Each resource must have a unique client request token. The client token is used to implement idempotency. It ensures that the request completes no more than one time. If you retry a request with the same token and the same parameters, the request will complete successfully. However, if you try to create a new resource using the same token but different parameters, an HTTP 409 conflict occurs. If you omit this value, AWS SDKs will automatically generate a unique client request. For more information about idempotency, see Ensuring idempotency in Amazon EC2 API requests.

Raises:

Source code in docs_src/capo_iot_wireless/_services/io_t_wireless.py
def create_wireless_gateway(
    self,
    lo_ra_wan: "capo_iot_wireless.types.lo_ra_wan_gateway.LoRaWANGateway",
    *,
    config_overrides: Optional[IoTWirelessClientConfig] = None,
    name: Optional[
        "capo_iot_wireless.types.wireless_gateway_name.WirelessGatewayName"
    ] = None,
    description: Optional["capo_iot_wireless.types.description.Description"] = None,
    tags: Optional["capo_iot_wireless.types.tag_list.TagList"] = None,
    client_request_token: Optional[
        "capo_iot_wireless.types.client_request_token.ClientRequestToken"
    ] = None,
) -> "capo_iot_wireless.types.create_wireless_gateway_response.CreateWirelessGatewayResponse":
    """<p>Provisions a wireless gateway.</p> <note> <p>When provisioning a wireless gateway, you might run into duplication errors for the following reasons.</p> <ul> <li> <p>If you specify a <code>GatewayEui</code> value that already exists.</p> </li> <li> <p>If you used a <code>ClientRequestToken</code> with the same parameters within the last 10 minutes.</p> </li> </ul> <p>To avoid this error, make sure that you use unique identifiers and parameters for each request within the specified time period.</p> </note>

    Args:
        name: <p>The name of the new resource.</p> <note> <p>The following special characters aren't accepted: <code><>^#~$</code> </p> </note>
        description: <p>The description of the new resource.</p>
        lo_ra_wan: <p>The gateway configuration information to use to create the wireless gateway.</p>
        tags: <p>The tags to attach to the new wireless gateway. Tags are metadata that you can use to manage a resource.</p>
        client_request_token: <p>Each resource must have a unique client request token. The client token is used to implement idempotency. It ensures that the request completes no more than one time. If you retry a request with the same token and the same parameters, the request will complete successfully. However, if you try to create a new resource using the same token but different parameters, an HTTP 409 conflict occurs. If you omit this value, AWS SDKs will automatically generate a unique client request. For more information about idempotency, see <a href="https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html">Ensuring idempotency in Amazon EC2 API requests</a>.</p>

    Raises:
        capo_iot_wireless.errors.access_denied_exception.AccessDeniedException: <p>User does not have permission to perform this action.</p>
        capo_iot_wireless.errors.conflict_exception.ConflictException: <p>Adding, updating, or deleting the resource can cause an inconsistent state.</p>
        capo_iot_wireless.errors.internal_server_exception.InternalServerException: <p>An unexpected error occurred while processing a request.</p>
        capo_iot_wireless.errors.throttling_exception.ThrottlingException: <p>The request was denied because it exceeded the allowed API request rate.</p>
        capo_iot_wireless.errors.validation_exception.ValidationException: <p>The input did not meet the specified constraints.</p>
        capo_iot_wireless.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    def _handler(
        req: "OperationRequest[capo_iot_wireless.types.create_wireless_gateway_request.CreateWirelessGatewayRequest]",
    ) -> OperationResponse[
        "capo_iot_wireless.types.create_wireless_gateway_response.CreateWirelessGatewayResponse"
    ]:
        import capo_iot_wireless._operations.iotwireless.create_wireless_gateway

        output, http_response = (
            capo_iot_wireless._operations.iotwireless.create_wireless_gateway.create_wireless_gateway(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("CreateWirelessGateway")
    )
    input_: capo_iot_wireless.types.create_wireless_gateway_request.CreateWirelessGatewayRequest = {
        "lo_ra_wan": lo_ra_wan
    }
    if name is not None:
        input_["name"] = name
    if description is not None:
        input_["description"] = description
    if tags is not None:
        input_["tags"] = tags
    if client_request_token is None:
        client_request_token = str(uuid.uuid4())
    input_["client_request_token"] = client_request_token

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