text:
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
// Code generated by Microsoft (R) AutoRest Code Generator.

package com.azure.resourcemanager.network.implementation;

import com.azure.core.annotation.BodyParam;
import com.azure.core.annotation.Delete;
import com.azure.core.annotation.ExpectedResponses;
import com.azure.core.annotation.Get;
import com.azure.core.annotation.HeaderParam;
import com.azure.core.annotation.Headers;
import com.azure.core.annotation.Host;
import com.azure.core.annotation.HostParam;
import com.azure.core.annotation.Patch;
import com.azure.core.annotation.PathParam;
import com.azure.core.annotation.Put;
import com.azure.core.annotation.QueryParam;
import com.azure.core.annotation.ReturnType;
import com.azure.core.annotation.ServiceInterface;
import com.azure.core.annotation.ServiceMethod;
import com.azure.core.annotation.UnexpectedResponseExceptionType;
import com.azure.core.http.rest.PagedFlux;
import com.azure.core.http.rest.PagedIterable;
import com.azure.core.http.rest.PagedResponse;
import com.azure.core.http.rest.PagedResponseBase;
import com.azure.core.http.rest.Response;
import com.azure.core.http.rest.RestProxy;
import com.azure.core.management.exception.ManagementException;
import com.azure.core.management.polling.PollResult;
import com.azure.core.util.Context;
import com.azure.core.util.FluxUtil;
import com.azure.core.util.logging.ClientLogger;
import com.azure.core.util.polling.PollerFlux;
import com.azure.core.util.polling.SyncPoller;
import com.azure.resourcemanager.network.fluent.RouteTablesClient;
import com.azure.resourcemanager.network.fluent.models.RouteTableInner;
import com.azure.resourcemanager.network.models.RouteTableListResult;
import com.azure.resourcemanager.network.models.TagsObject;
import com.azure.resourcemanager.resources.fluentcore.collection.InnerSupportsDelete;
import com.azure.resourcemanager.resources.fluentcore.collection.InnerSupportsGet;
import com.azure.resourcemanager.resources.fluentcore.collection.InnerSupportsListing;
import java.nio.ByteBuffer;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

/** An instance of this class provides access to all the operations defined in RouteTablesClient. */
public final class RouteTablesClientImpl
    implements InnerSupportsGet<RouteTableInner>,
        InnerSupportsListing<RouteTableInner>,
        InnerSupportsDelete<Void>,
        RouteTablesClient {
    private final ClientLogger logger = new ClientLogger(RouteTablesClientImpl.class);

    /** The proxy service used to perform REST calls. */
    private final RouteTablesService service;

    /** The service client containing this operation class. */
    private final NetworkManagementClientImpl client;

    /**
     * Initializes an instance of RouteTablesClientImpl.
     *
     * @param client the instance of the service client containing this operation class.
     */
    RouteTablesClientImpl(NetworkManagementClientImpl client) {
        this.service =
            RestProxy.create(RouteTablesService.class, client.getHttpPipeline(), client.getSerializerAdapter());
        this.client = client;
    }

    /**
     * The interface defining all the services for NetworkManagementClientRouteTables to be used by the proxy service to
     * perform REST calls.
     */
    @Host("{$host}")
    @ServiceInterface(name = "NetworkManagementCli")
    private interface RouteTablesService {
        @Headers({"Accept: application/json;q=0.9", "Content-Type: application/json"})
        @Delete(
            "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/routeTables"
                + "/{routeTableName}")
        @ExpectedResponses({200, 202, 204})
        @UnexpectedResponseExceptionType(ManagementException.class)
        Mono<Response<Flux<ByteBuffer>>> delete(
            @HostParam("$host") String endpoint,
            @PathParam("resourceGroupName") String resourceGroupName,
            @PathParam("routeTableName") String routeTableName,
            @QueryParam("api-version") String apiVersion,
            @PathParam("subscriptionId") String subscriptionId,
            Context context);

        @Headers({"Content-Type: application/json"})
        @Get(
            "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/routeTables"
                + "/{routeTableName}")
        @ExpectedResponses({200})
        @UnexpectedResponseExceptionType(ManagementException.class)
        Mono<Response<RouteTableInner>> getByResourceGroup(
            @HostParam("$host") String endpoint,
            @PathParam("resourceGroupName") String resourceGroupName,
            @PathParam("routeTableName") String routeTableName,
            @QueryParam("api-version") String apiVersion,
            @PathParam("subscriptionId") String subscriptionId,
            @QueryParam("$expand") String expand,
            @HeaderParam("Accept") String accept,
            Context context);

        @Headers({"Content-Type: application/json"})
        @Put(
            "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/routeTables"
                + "/{routeTableName}")
        @ExpectedResponses({200, 201})
        @UnexpectedResponseExceptionType(ManagementException.class)
        Mono<Response<Flux<ByteBuffer>>> createOrUpdate(
            @HostParam("$host") String endpoint,
            @PathParam("resourceGroupName") String resourceGroupName,
            @PathParam("routeTableName") String routeTableName,
            @QueryParam("api-version") String apiVersion,
            @PathParam("subscriptionId") String subscriptionId,
            @BodyParam("application/json") RouteTableInner parameters,
            @HeaderParam("Accept") String accept,
            Context context);

        @Headers({"Content-Type: application/json"})
        @Patch(
            "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/routeTables"
                + "/{routeTableName}")
        @ExpectedResponses({200})
        @UnexpectedResponseExceptionType(ManagementException.class)
        Mono<Response<Flux<ByteBuffer>>> updateTags(
            @HostParam("$host") String endpoint,
            @PathParam("resourceGroupName") String resourceGroupName,
            @PathParam("routeTableName") String routeTableName,
            @QueryParam("api-version") String apiVersion,
            @PathParam("subscriptionId") String subscriptionId,
            @BodyParam("application/json") TagsObject parameters,
            @HeaderParam("Accept") String accept,
            Context context);

        @Headers({"Content-Type: application/json"})
        @Get(
            "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network"
                + "/routeTables")
        @ExpectedResponses({200})
        @UnexpectedResponseExceptionType(ManagementException.class)
        Mono<Response<RouteTableListResult>> listByResourceGroup(
            @HostParam("$host") String endpoint,
            @PathParam("resourceGroupName") String resourceGroupName,
            @QueryParam("api-version") String apiVersion,
            @PathParam("subscriptionId") String subscriptionId,
            @HeaderParam("Accept") String accept,
            Context context);

        @Headers({"Content-Type: application/json"})
        @Get("/subscriptions/{subscriptionId}/providers/Microsoft.Network/routeTables")
        @ExpectedResponses({200})
        @UnexpectedResponseExceptionType(ManagementException.class)
        Mono<Response<RouteTableListResult>> list(
            @HostParam("$host") String endpoint,
            @QueryParam("api-version") String apiVersion,
            @PathParam("subscriptionId") String subscriptionId,
            @HeaderParam("Accept") String accept,
            Context context);

        @Headers({"Content-Type: application/json"})
        @Get("{nextLink}")
        @ExpectedResponses({200})
        @UnexpectedResponseExceptionType(ManagementException.class)
        Mono<Response<RouteTableListResult>> listNext(
            @PathParam(value = "nextLink", encoded = true) String nextLink,
            @HostParam("$host") String endpoint,
            @HeaderParam("Accept") String accept,
            Context context);

        @Headers({"Content-Type: application/json"})
        @Get("{nextLink}")
        @ExpectedResponses({200})
        @UnexpectedResponseExceptionType(ManagementException.class)
        Mono<Response<RouteTableListResult>> listAllNext(
            @PathParam(value = "nextLink", encoded = true) String nextLink,
            @HostParam("$host") String endpoint,
            @HeaderParam("Accept") String accept,
            Context context);
    }

    /**
     * Deletes the specified route table.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the completion.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    public Mono<Response<Flux<ByteBuffer>>> deleteWithResponseAsync(String resourceGroupName, String routeTableName) {
        if (this.client.getEndpoint() == null) {
            return Mono
                .error(
                    new IllegalArgumentException(
                        "Parameter this.client.getEndpoint() is required and cannot be null."));
        }
        if (resourceGroupName == null) {
            return Mono
                .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
        }
        if (routeTableName == null) {
            return Mono.error(new IllegalArgumentException("Parameter routeTableName is required and cannot be null."));
        }
        if (this.client.getSubscriptionId() == null) {
            return Mono
                .error(
                    new IllegalArgumentException(
                        "Parameter this.client.getSubscriptionId() is required and cannot be null."));
        }
        final String apiVersion = "2018-11-01";
        return FluxUtil
            .withContext(
                context ->
                    service
                        .delete(
                            this.client.getEndpoint(),
                            resourceGroupName,
                            routeTableName,
                            apiVersion,
                            this.client.getSubscriptionId(),
                            context))
            .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
    }

    /**
     * Deletes the specified route table.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the completion.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    private Mono<Response<Flux<ByteBuffer>>> deleteWithResponseAsync(
        String resourceGroupName, String routeTableName, Context context) {
        if (this.client.getEndpoint() == null) {
            return Mono
                .error(
                    new IllegalArgumentException(
                        "Parameter this.client.getEndpoint() is required and cannot be null."));
        }
        if (resourceGroupName == null) {
            return Mono
                .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
        }
        if (routeTableName == null) {
            return Mono.error(new IllegalArgumentException("Parameter routeTableName is required and cannot be null."));
        }
        if (this.client.getSubscriptionId() == null) {
            return Mono
                .error(
                    new IllegalArgumentException(
                        "Parameter this.client.getSubscriptionId() is required and cannot be null."));
        }
        final String apiVersion = "2018-11-01";
        context = this.client.mergeContext(context);
        return service
            .delete(
                this.client.getEndpoint(),
                resourceGroupName,
                routeTableName,
                apiVersion,
                this.client.getSubscriptionId(),
                context);
    }

    /**
     * Deletes the specified route table.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the completion.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    public PollerFlux<PollResult<Void>, Void> beginDeleteAsync(String resourceGroupName, String routeTableName) {
        Mono<Response<Flux<ByteBuffer>>> mono = deleteWithResponseAsync(resourceGroupName, routeTableName);
        return this
            .client
            .<Void, Void>getLroResult(
                mono, this.client.getHttpPipeline(), Void.class, Void.class, this.client.getContext());
    }

    /**
     * Deletes the specified route table.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the completion.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    private PollerFlux<PollResult<Void>, Void> beginDeleteAsync(
        String resourceGroupName, String routeTableName, Context context) {
        context = this.client.mergeContext(context);
        Mono<Response<Flux<ByteBuffer>>> mono = deleteWithResponseAsync(resourceGroupName, routeTableName, context);
        return this
            .client
            .<Void, Void>getLroResult(mono, this.client.getHttpPipeline(), Void.class, Void.class, context);
    }

    /**
     * Deletes the specified route table.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the completion.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    public SyncPoller<PollResult<Void>, Void> beginDelete(String resourceGroupName, String routeTableName) {
        return beginDeleteAsync(resourceGroupName, routeTableName).getSyncPoller();
    }

    /**
     * Deletes the specified route table.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the completion.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    public SyncPoller<PollResult<Void>, Void> beginDelete(
        String resourceGroupName, String routeTableName, Context context) {
        return beginDeleteAsync(resourceGroupName, routeTableName, context).getSyncPoller();
    }

    /**
     * Deletes the specified route table.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the completion.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    public Mono<Void> deleteAsync(String resourceGroupName, String routeTableName) {
        return beginDeleteAsync(resourceGroupName, routeTableName)
            .last()
            .flatMap(this.client::getLroFinalResultOrError);
    }

    /**
     * Deletes the specified route table.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the completion.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    private Mono<Void> deleteAsync(String resourceGroupName, String routeTableName, Context context) {
        return beginDeleteAsync(resourceGroupName, routeTableName, context)
            .last()
            .flatMap(this.client::getLroFinalResultOrError);
    }

    /**
     * Deletes the specified route table.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    public void delete(String resourceGroupName, String routeTableName) {
        deleteAsync(resourceGroupName, routeTableName).block();
    }

    /**
     * Deletes the specified route table.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    public void delete(String resourceGroupName, String routeTableName, Context context) {
        deleteAsync(resourceGroupName, routeTableName, context).block();
    }

    /**
     * Gets the specified route table.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @param expand Expands referenced resources.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the specified route table.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    public Mono<Response<RouteTableInner>> getByResourceGroupWithResponseAsync(
        String resourceGroupName, String routeTableName, String expand) {
        if (this.client.getEndpoint() == null) {
            return Mono
                .error(
                    new IllegalArgumentException(
                        "Parameter this.client.getEndpoint() is required and cannot be null."));
        }
        if (resourceGroupName == null) {
            return Mono
                .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
        }
        if (routeTableName == null) {
            return Mono.error(new IllegalArgumentException("Parameter routeTableName is required and cannot be null."));
        }
        if (this.client.getSubscriptionId() == null) {
            return Mono
                .error(
                    new IllegalArgumentException(
                        "Parameter this.client.getSubscriptionId() is required and cannot be null."));
        }
        final String apiVersion = "2018-11-01";
        final String accept = "application/json";
        return FluxUtil
            .withContext(
                context ->
                    service
                        .getByResourceGroup(
                            this.client.getEndpoint(),
                            resourceGroupName,
                            routeTableName,
                            apiVersion,
                            this.client.getSubscriptionId(),
                            expand,
                            accept,
                            context))
            .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
    }

    /**
     * Gets the specified route table.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @param expand Expands referenced resources.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the specified route table.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    private Mono<Response<RouteTableInner>> getByResourceGroupWithResponseAsync(
        String resourceGroupName, String routeTableName, String expand, Context context) {
        if (this.client.getEndpoint() == null) {
            return Mono
                .error(
                    new IllegalArgumentException(
                        "Parameter this.client.getEndpoint() is required and cannot be null."));
        }
        if (resourceGroupName == null) {
            return Mono
                .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
        }
        if (routeTableName == null) {
            return Mono.error(new IllegalArgumentException("Parameter routeTableName is required and cannot be null."));
        }
        if (this.client.getSubscriptionId() == null) {
            return Mono
                .error(
                    new IllegalArgumentException(
                        "Parameter this.client.getSubscriptionId() is required and cannot be null."));
        }
        final String apiVersion = "2018-11-01";
        final String accept = "application/json";
        context = this.client.mergeContext(context);
        return service
            .getByResourceGroup(
                this.client.getEndpoint(),
                resourceGroupName,
                routeTableName,
                apiVersion,
                this.client.getSubscriptionId(),
                expand,
                accept,
                context);
    }

    /**
     * Gets the specified route table.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @param expand Expands referenced resources.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the specified route table.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    public Mono<RouteTableInner> getByResourceGroupAsync(
        String resourceGroupName, String routeTableName, String expand) {
        return getByResourceGroupWithResponseAsync(resourceGroupName, routeTableName, expand)
            .flatMap(
                (Response<RouteTableInner> res) -> {
                    if (res.getValue() != null) {
                        return Mono.just(res.getValue());
                    } else {
                        return Mono.empty();
                    }
                });
    }

    /**
     * Gets the specified route table.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the specified route table.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    public Mono<RouteTableInner> getByResourceGroupAsync(String resourceGroupName, String routeTableName) {
        final String expand = null;
        return getByResourceGroupWithResponseAsync(resourceGroupName, routeTableName, expand)
            .flatMap(
                (Response<RouteTableInner> res) -> {
                    if (res.getValue() != null) {
                        return Mono.just(res.getValue());
                    } else {
                        return Mono.empty();
                    }
                });
    }

    /**
     * Gets the specified route table.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the specified route table.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    public RouteTableInner getByResourceGroup(String resourceGroupName, String routeTableName) {
        final String expand = null;
        return getByResourceGroupAsync(resourceGroupName, routeTableName, expand).block();
    }

    /**
     * Gets the specified route table.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @param expand Expands referenced resources.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the specified route table.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    public Response<RouteTableInner> getByResourceGroupWithResponse(
        String resourceGroupName, String routeTableName, String expand, Context context) {
        return getByResourceGroupWithResponseAsync(resourceGroupName, routeTableName, expand, context).block();
    }

    /**
     * Create or updates a route table in a specified resource group.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @param parameters Parameters supplied to the create or update route table operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return route table resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    public Mono<Response<Flux<ByteBuffer>>> createOrUpdateWithResponseAsync(
        String resourceGroupName, String routeTableName, RouteTableInner parameters) {
        if (this.client.getEndpoint() == null) {
            return Mono
                .error(
                    new IllegalArgumentException(
                        "Parameter this.client.getEndpoint() is required and cannot be null."));
        }
        if (resourceGroupName == null) {
            return Mono
                .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
        }
        if (routeTableName == null) {
            return Mono.error(new IllegalArgumentException("Parameter routeTableName is required and cannot be null."));
        }
        if (this.client.getSubscriptionId() == null) {
            return Mono
                .error(
                    new IllegalArgumentException(
                        "Parameter this.client.getSubscriptionId() is required and cannot be null."));
        }
        if (parameters == null) {
            return Mono.error(new IllegalArgumentException("Parameter parameters is required and cannot be null."));
        } else {
            parameters.validate();
        }
        final String apiVersion = "2018-11-01";
        final String accept = "application/json";
        return FluxUtil
            .withContext(
                context ->
                    service
                        .createOrUpdate(
                            this.client.getEndpoint(),
                            resourceGroupName,
                            routeTableName,
                            apiVersion,
                            this.client.getSubscriptionId(),
                            parameters,
                            accept,
                            context))
            .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
    }

    /**
     * Create or updates a route table in a specified resource group.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @param parameters Parameters supplied to the create or update route table operation.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return route table resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    private Mono<Response<Flux<ByteBuffer>>> createOrUpdateWithResponseAsync(
        String resourceGroupName, String routeTableName, RouteTableInner parameters, Context context) {
        if (this.client.getEndpoint() == null) {
            return Mono
                .error(
                    new IllegalArgumentException(
                        "Parameter this.client.getEndpoint() is required and cannot be null."));
        }
        if (resourceGroupName == null) {
            return Mono
                .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
        }
        if (routeTableName == null) {
            return Mono.error(new IllegalArgumentException("Parameter routeTableName is required and cannot be null."));
        }
        if (this.client.getSubscriptionId() == null) {
            return Mono
                .error(
                    new IllegalArgumentException(
                        "Parameter this.client.getSubscriptionId() is required and cannot be null."));
        }
        if (parameters == null) {
            return Mono.error(new IllegalArgumentException("Parameter parameters is required and cannot be null."));
        } else {
            parameters.validate();
        }
        final String apiVersion = "2018-11-01";
        final String accept = "application/json";
        context = this.client.mergeContext(context);
        return service
            .createOrUpdate(
                this.client.getEndpoint(),
                resourceGroupName,
                routeTableName,
                apiVersion,
                this.client.getSubscriptionId(),
                parameters,
                accept,
                context);
    }

    /**
     * Create or updates a route table in a specified resource group.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @param parameters Parameters supplied to the create or update route table operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return route table resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    public PollerFlux<PollResult<RouteTableInner>, RouteTableInner> beginCreateOrUpdateAsync(
        String resourceGroupName, String routeTableName, RouteTableInner parameters) {
        Mono<Response<Flux<ByteBuffer>>> mono =
            createOrUpdateWithResponseAsync(resourceGroupName, routeTableName, parameters);
        return this
            .client
            .<RouteTableInner, RouteTableInner>getLroResult(
                mono,
                this.client.getHttpPipeline(),
                RouteTableInner.class,
                RouteTableInner.class,
                this.client.getContext());
    }

    /**
     * Create or updates a route table in a specified resource group.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @param parameters Parameters supplied to the create or update route table operation.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return route table resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    private PollerFlux<PollResult<RouteTableInner>, RouteTableInner> beginCreateOrUpdateAsync(
        String resourceGroupName, String routeTableName, RouteTableInner parameters, Context context) {
        context = this.client.mergeContext(context);
        Mono<Response<Flux<ByteBuffer>>> mono =
            createOrUpdateWithResponseAsync(resourceGroupName, routeTableName, parameters, context);
        return this
            .client
            .<RouteTableInner, RouteTableInner>getLroResult(
                mono, this.client.getHttpPipeline(), RouteTableInner.class, RouteTableInner.class, context);
    }

    /**
     * Create or updates a route table in a specified resource group.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @param parameters Parameters supplied to the create or update route table operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return route table resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    public SyncPoller<PollResult<RouteTableInner>, RouteTableInner> beginCreateOrUpdate(
        String resourceGroupName, String routeTableName, RouteTableInner parameters) {
        return beginCreateOrUpdateAsync(resourceGroupName, routeTableName, parameters).getSyncPoller();
    }

    /**
     * Create or updates a route table in a specified resource group.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @param parameters Parameters supplied to the create or update route table operation.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return route table resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    public SyncPoller<PollResult<RouteTableInner>, RouteTableInner> beginCreateOrUpdate(
        String resourceGroupName, String routeTableName, RouteTableInner parameters, Context context) {
        return beginCreateOrUpdateAsync(resourceGroupName, routeTableName, parameters, context).getSyncPoller();
    }

    /**
     * Create or updates a route table in a specified resource group.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @param parameters Parameters supplied to the create or update route table operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return route table resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    public Mono<RouteTableInner> createOrUpdateAsync(
        String resourceGroupName, String routeTableName, RouteTableInner parameters) {
        return beginCreateOrUpdateAsync(resourceGroupName, routeTableName, parameters)
            .last()
            .flatMap(this.client::getLroFinalResultOrError);
    }

    /**
     * Create or updates a route table in a specified resource group.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @param parameters Parameters supplied to the create or update route table operation.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return route table resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    private Mono<RouteTableInner> createOrUpdateAsync(
        String resourceGroupName, String routeTableName, RouteTableInner parameters, Context context) {
        return beginCreateOrUpdateAsync(resourceGroupName, routeTableName, parameters, context)
            .last()
            .flatMap(this.client::getLroFinalResultOrError);
    }

    /**
     * Create or updates a route table in a specified resource group.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @param parameters Parameters supplied to the create or update route table operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return route table resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    public RouteTableInner createOrUpdate(String resourceGroupName, String routeTableName, RouteTableInner parameters) {
        return createOrUpdateAsync(resourceGroupName, routeTableName, parameters).block();
    }

    /**
     * Create or updates a route table in a specified resource group.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @param parameters Parameters supplied to the create or update route table operation.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return route table resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    public RouteTableInner createOrUpdate(
        String resourceGroupName, String routeTableName, RouteTableInner parameters, Context context) {
        return createOrUpdateAsync(resourceGroupName, routeTableName, parameters, context).block();
    }

    /**
     * Updates a route table tags.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @param parameters Parameters supplied to update route table tags.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return route table resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    public Mono<Response<Flux<ByteBuffer>>> updateTagsWithResponseAsync(
        String resourceGroupName, String routeTableName, TagsObject parameters) {
        if (this.client.getEndpoint() == null) {
            return Mono
                .error(
                    new IllegalArgumentException(
                        "Parameter this.client.getEndpoint() is required and cannot be null."));
        }
        if (resourceGroupName == null) {
            return Mono
                .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
        }
        if (routeTableName == null) {
            return Mono.error(new IllegalArgumentException("Parameter routeTableName is required and cannot be null."));
        }
        if (this.client.getSubscriptionId() == null) {
            return Mono
                .error(
                    new IllegalArgumentException(
                        "Parameter this.client.getSubscriptionId() is required and cannot be null."));
        }
        if (parameters == null) {
            return Mono.error(new IllegalArgumentException("Parameter parameters is required and cannot be null."));
        } else {
            parameters.validate();
        }
        final String apiVersion = "2018-11-01";
        final String accept = "application/json";
        return FluxUtil
            .withContext(
                context ->
                    service
                        .updateTags(
                            this.client.getEndpoint(),
                            resourceGroupName,
                            routeTableName,
                            apiVersion,
                            this.client.getSubscriptionId(),
                            parameters,
                            accept,
                            context))
            .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
    }

    /**
     * Updates a route table tags.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @param parameters Parameters supplied to update route table tags.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return route table resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    private Mono<Response<Flux<ByteBuffer>>> updateTagsWithResponseAsync(
        String resourceGroupName, String routeTableName, TagsObject parameters, Context context) {
        if (this.client.getEndpoint() == null) {
            return Mono
                .error(
                    new IllegalArgumentException(
                        "Parameter this.client.getEndpoint() is required and cannot be null."));
        }
        if (resourceGroupName == null) {
            return Mono
                .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
        }
        if (routeTableName == null) {
            return Mono.error(new IllegalArgumentException("Parameter routeTableName is required and cannot be null."));
        }
        if (this.client.getSubscriptionId() == null) {
            return Mono
                .error(
                    new IllegalArgumentException(
                        "Parameter this.client.getSubscriptionId() is required and cannot be null."));
        }
        if (parameters == null) {
            return Mono.error(new IllegalArgumentException("Parameter parameters is required and cannot be null."));
        } else {
            parameters.validate();
        }
        final String apiVersion = "2018-11-01";
        final String accept = "application/json";
        context = this.client.mergeContext(context);
        return service
            .updateTags(
                this.client.getEndpoint(),
                resourceGroupName,
                routeTableName,
                apiVersion,
                this.client.getSubscriptionId(),
                parameters,
                accept,
                context);
    }

    /**
     * Updates a route table tags.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @param parameters Parameters supplied to update route table tags.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return route table resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    public PollerFlux<PollResult<RouteTableInner>, RouteTableInner> beginUpdateTagsAsync(
        String resourceGroupName, String routeTableName, TagsObject parameters) {
        Mono<Response<Flux<ByteBuffer>>> mono =
            updateTagsWithResponseAsync(resourceGroupName, routeTableName, parameters);
        return this
            .client
            .<RouteTableInner, RouteTableInner>getLroResult(
                mono,
                this.client.getHttpPipeline(),
                RouteTableInner.class,
                RouteTableInner.class,
                this.client.getContext());
    }

    /**
     * Updates a route table tags.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @param parameters Parameters supplied to update route table tags.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return route table resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    private PollerFlux<PollResult<RouteTableInner>, RouteTableInner> beginUpdateTagsAsync(
        String resourceGroupName, String routeTableName, TagsObject parameters, Context context) {
        context = this.client.mergeContext(context);
        Mono<Response<Flux<ByteBuffer>>> mono =
            updateTagsWithResponseAsync(resourceGroupName, routeTableName, parameters, context);
        return this
            .client
            .<RouteTableInner, RouteTableInner>getLroResult(
                mono, this.client.getHttpPipeline(), RouteTableInner.class, RouteTableInner.class, context);
    }

    /**
     * Updates a route table tags.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @param parameters Parameters supplied to update route table tags.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return route table resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    public SyncPoller<PollResult<RouteTableInner>, RouteTableInner> beginUpdateTags(
        String resourceGroupName, String routeTableName, TagsObject parameters) {
        return beginUpdateTagsAsync(resourceGroupName, routeTableName, parameters).getSyncPoller();
    }

    /**
     * Updates a route table tags.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @param parameters Parameters supplied to update route table tags.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return route table resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    public SyncPoller<PollResult<RouteTableInner>, RouteTableInner> beginUpdateTags(
        String resourceGroupName, String routeTableName, TagsObject parameters, Context context) {
        return beginUpdateTagsAsync(resourceGroupName, routeTableName, parameters, context).getSyncPoller();
    }

    /**
     * Updates a route table tags.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @param parameters Parameters supplied to update route table tags.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return route table resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    public Mono<RouteTableInner> updateTagsAsync(
        String resourceGroupName, String routeTableName, TagsObject parameters) {
        return beginUpdateTagsAsync(resourceGroupName, routeTableName, parameters)
            .last()
            .flatMap(this.client::getLroFinalResultOrError);
    }

    /**
     * Updates a route table tags.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @param parameters Parameters supplied to update route table tags.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return route table resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    private Mono<RouteTableInner> updateTagsAsync(
        String resourceGroupName, String routeTableName, TagsObject parameters, Context context) {
        return beginUpdateTagsAsync(resourceGroupName, routeTableName, parameters, context)
            .last()
            .flatMap(this.client::getLroFinalResultOrError);
    }

    /**
     * Updates a route table tags.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @param parameters Parameters supplied to update route table tags.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return route table resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    public RouteTableInner updateTags(String resourceGroupName, String routeTableName, TagsObject parameters) {
        return updateTagsAsync(resourceGroupName, routeTableName, parameters).block();
    }

    /**
     * Updates a route table tags.
     *
     * @param resourceGroupName The name of the resource group.
     * @param routeTableName The name of the route table.
     * @param parameters Parameters supplied to update route table tags.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return route table resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    public RouteTableInner updateTags(
        String resourceGroupName, String routeTableName, TagsObject parameters, Context context) {
        return updateTagsAsync(resourceGroupName, routeTableName, parameters, context).block();
    }

    /**
     * Gets all route tables in a resource group.
     *
     * @param resourceGroupName The name of the resource group.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return all route tables in a resource group.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    private Mono<PagedResponse<RouteTableInner>> listByResourceGroupSinglePageAsync(String resourceGroupName) {
        if (this.client.getEndpoint() == null) {
            return Mono
                .error(
                    new IllegalArgumentException(
                        "Parameter this.client.getEndpoint() is required and cannot be null."));
        }
        if (resourceGroupName == null) {
            return Mono
                .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
        }
        if (this.client.getSubscriptionId() == null) {
            return Mono
                .error(
                    new IllegalArgumentException(
                        "Parameter this.client.getSubscriptionId() is required and cannot be null."));
        }
        final String apiVersion = "2018-11-01";
        final String accept = "application/json";
        return FluxUtil
            .withContext(
                context ->
                    service
                        .listByResourceGroup(
                            this.client.getEndpoint(),
                            resourceGroupName,
                            apiVersion,
                            this.client.getSubscriptionId(),
                            accept,
                            context))
            .<PagedResponse<RouteTableInner>>map(
                res ->
                    new PagedResponseBase<>(
                        res.getRequest(),
                        res.getStatusCode(),
                        res.getHeaders(),
                        res.getValue().value(),
                        res.getValue().nextLink(),
                        null))
            .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
    }

    /**
     * Gets all route tables in a resource group.
     *
     * @param resourceGroupName The name of the resource group.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return all route tables in a resource group.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    private Mono<PagedResponse<RouteTableInner>> listByResourceGroupSinglePageAsync(
        String resourceGroupName, Context context) {
        if (this.client.getEndpoint() == null) {
            return Mono
                .error(
                    new IllegalArgumentException(
                        "Parameter this.client.getEndpoint() is required and cannot be null."));
        }
        if (resourceGroupName == null) {
            return Mono
                .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
        }
        if (this.client.getSubscriptionId() == null) {
            return Mono
                .error(
                    new IllegalArgumentException(
                        "Parameter this.client.getSubscriptionId() is required and cannot be null."));
        }
        final String apiVersion = "2018-11-01";
        final String accept = "application/json";
        context = this.client.mergeContext(context);
        return service
            .listByResourceGroup(
                this.client.getEndpoint(),
                resourceGroupName,
                apiVersion,
                this.client.getSubscriptionId(),
                accept,
                context)
            .map(
                res ->
                    new PagedResponseBase<>(
                        res.getRequest(),
                        res.getStatusCode(),
                        res.getHeaders(),
                        res.getValue().value(),
                        res.getValue().nextLink(),
                        null));
    }

    /**
     * Gets all route tables in a resource group.
     *
     * @param resourceGroupName The name of the resource group.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return all route tables in a resource group.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    public PagedFlux<RouteTableInner> listByResourceGroupAsync(String resourceGroupName) {
        return new PagedFlux<>(
            () -> listByResourceGroupSinglePageAsync(resourceGroupName), nextLink -> listNextSinglePageAsync(nextLink));
    }

    /**
     * Gets all route tables in a resource group.
     *
     * @param resourceGroupName The name of the resource group.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return all route tables in a resource group.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    private PagedFlux<RouteTableInner> listByResourceGroupAsync(String resourceGroupName, Context context) {
        return new PagedFlux<>(
            () -> listByResourceGroupSinglePageAsync(resourceGroupName, context),
            nextLink -> listNextSinglePageAsync(nextLink, context));
    }

    /**
     * Gets all route tables in a resource group.
     *
     * @param resourceGroupName The name of the resource group.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return all route tables in a resource group.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    public PagedIterable<RouteTableInner> listByResourceGroup(String resourceGroupName) {
        return new PagedIterable<>(listByResourceGroupAsync(resourceGroupName));
    }

    /**
     * Gets all route tables in a resource group.
     *
     * @param resourceGroupName The name of the resource group.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return all route tables in a resource group.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    public PagedIterable<RouteTableInner> listByResourceGroup(String resourceGroupName, Context context) {
        return new PagedIterable<>(listByResourceGroupAsync(resourceGroupName, context));
    }

    /**
     * Gets all route tables in a subscription.
     *
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return all route tables in a subscription.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    private Mono<PagedResponse<RouteTableInner>> listSinglePageAsync() {
        if (this.client.getEndpoint() == null) {
            return Mono
                .error(
                    new IllegalArgumentException(
                        "Parameter this.client.getEndpoint() is required and cannot be null."));
        }
        if (this.client.getSubscriptionId() == null) {
            return Mono
                .error(
                    new IllegalArgumentException(
                        "Parameter this.client.getSubscriptionId() is required and cannot be null."));
        }
        final String apiVersion = "2018-11-01";
        final String accept = "application/json";
        return FluxUtil
            .withContext(
                context ->
                    service
                        .list(this.client.getEndpoint(), apiVersion, this.client.getSubscriptionId(), accept, context))
            .<PagedResponse<RouteTableInner>>map(
                res ->
                    new PagedResponseBase<>(
                        res.getRequest(),
                        res.getStatusCode(),
                        res.getHeaders(),
                        res.getValue().value(),
                        res.getValue().nextLink(),
                        null))
            .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
    }

    /**
     * Gets all route tables in a subscription.
     *
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return all route tables in a subscription.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    private Mono<PagedResponse<RouteTableInner>> listSinglePageAsync(Context context) {
        if (this.client.getEndpoint() == null) {
            return Mono
                .error(
                    new IllegalArgumentException(
                        "Parameter this.client.getEndpoint() is required and cannot be null."));
        }
        if (this.client.getSubscriptionId() == null) {
            return Mono
                .error(
                    new IllegalArgumentException(
                        "Parameter this.client.getSubscriptionId() is required and cannot be null."));
        }
        final String apiVersion = "2018-11-01";
        final String accept = "application/json";
        context = this.client.mergeContext(context);
        return service
            .list(this.client.getEndpoint(), apiVersion, this.client.getSubscriptionId(), accept, context)
            .map(
                res ->
                    new PagedResponseBase<>(
                        res.getRequest(),
                        res.getStatusCode(),
                        res.getHeaders(),
                        res.getValue().value(),
                        res.getValue().nextLink(),
                        null));
    }

    /**
     * Gets all route tables in a subscription.
     *
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return all route tables in a subscription.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    public PagedFlux<RouteTableInner> listAsync() {
        return new PagedFlux<>(() -> listSinglePageAsync(), nextLink -> listAllNextSinglePageAsync(nextLink));
    }

    /**
     * Gets all route tables in a subscription.
     *
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return all route tables in a subscription.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    private PagedFlux<RouteTableInner> listAsync(Context context) {
        return new PagedFlux<>(
            () -> listSinglePageAsync(context), nextLink -> listAllNextSinglePageAsync(nextLink, context));
    }

    /**
     * Gets all route tables in a subscription.
     *
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return all route tables in a subscription.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    public PagedIterable<RouteTableInner> list() {
        return new PagedIterable<>(listAsync());
    }

    /**
     * Gets all route tables in a subscription.
     *
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return all route tables in a subscription.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    public PagedIterable<RouteTableInner> list(Context context) {
        return new PagedIterable<>(listAsync(context));
    }

    /**
     * Get the next page of items.
     *
     * @param nextLink The nextLink parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return response for the ListRouteTable API service call.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    private Mono<PagedResponse<RouteTableInner>> listNextSinglePageAsync(String nextLink) {
        if (nextLink == null) {
            return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
        }
        if (this.client.getEndpoint() == null) {
            return Mono
                .error(
                    new IllegalArgumentException(
                        "Parameter this.client.getEndpoint() is required and cannot be null."));
        }
        final String accept = "application/json";
        return FluxUtil
            .withContext(context -> service.listNext(nextLink, this.client.getEndpoint(), accept, context))
            .<PagedResponse<RouteTableInner>>map(
                res ->
                    new PagedResponseBase<>(
                        res.getRequest(),
                        res.getStatusCode(),
                        res.getHeaders(),
                        res.getValue().value(),
                        res.getValue().nextLink(),
                        null))
            .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
    }

    /**
     * Get the next page of items.
     *
     * @param nextLink The nextLink parameter.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return response for the ListRouteTable API service call.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    private Mono<PagedResponse<RouteTableInner>> listNextSinglePageAsync(String nextLink, Context context) {
        if (nextLink == null) {
            return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
        }
        if (this.client.getEndpoint() == null) {
            return Mono
                .error(
                    new IllegalArgumentException(
                        "Parameter this.client.getEndpoint() is required and cannot be null."));
        }
        final String accept = "application/json";
        context = this.client.mergeContext(context);
        return service
            .listNext(nextLink, this.client.getEndpoint(), accept, context)
            .map(
                res ->
                    new PagedResponseBase<>(
                        res.getRequest(),
                        res.getStatusCode(),
                        res.getHeaders(),
                        res.getValue().value(),
                        res.getValue().nextLink(),
                        null));
    }

    /**
     * Get the next page of items.
     *
     * @param nextLink The nextLink parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return response for the ListRouteTable API service call.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    private Mono<PagedResponse<RouteTableInner>> listAllNextSinglePageAsync(String nextLink) {
        if (nextLink == null) {
            return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
        }
        if (this.client.getEndpoint() == null) {
            return Mono
                .error(
                    new IllegalArgumentException(
                        "Parameter this.client.getEndpoint() is required and cannot be null."));
        }
        final String accept = "application/json";
        return FluxUtil
            .withContext(context -> service.listAllNext(nextLink, this.client.getEndpoint(), accept, context))
            .<PagedResponse<RouteTableInner>>map(
                res ->
                    new PagedResponseBase<>(
                        res.getRequest(),
                        res.getStatusCode(),
                        res.getHeaders(),
                        res.getValue().value(),
                        res.getValue().nextLink(),
                        null))
            .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
    }

    /**
     * Get the next page of items.
     *
     * @param nextLink The nextLink parameter.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return response for the ListRouteTable API service call.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    private Mono<PagedResponse<RouteTableInner>> listAllNextSinglePageAsync(String nextLink, Context context) {
        if (nextLink == null) {
            return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
        }
        if (this.client.getEndpoint() == null) {
            return Mono
                .error(
                    new IllegalArgumentException(
                        "Parameter this.client.getEndpoint() is required and cannot be null."));
        }
        final String accept = "application/json";
        context = this.client.mergeContext(context);
        return service
            .listAllNext(nextLink, this.client.getEndpoint(), accept, context)
            .map(
                res ->
                    new PagedResponseBase<>(
                        res.getRequest(),
                        res.getStatusCode(),
                        res.getHeaders(),
                        res.getValue().value(),
                        res.getValue().nextLink(),
                        null));
    }
}


กริยา "Like" แต่งประโยค Present Simple Tense.
I like Liverpool football team.
You like Liverpool football team.
He likes Liverpool football team.
She likes Liverpool football team.
It likes Liverpool football team.
We like Liverpool football team.
They like Liverpool football team.
Somchai likes Liverpool football team.
Ranee likes Liverpool football team.
Somchai and Ranee like the football team.
Uncle likes Liverpool football team.
Aunt likes Liverpool football team.
Uncle and aunt like Liverpool football team.
Dad likes Liverpool football team.
Mum likes Liverpool football team.
Dad and mum like Liverpool football team.
My sister likes Liverpool football team.
Her brother likes Liverpool football team.
My sister and her brother like Liverpool football team.
Our friend likes Liverpool football team.
Their friends like Liverpool football team.
Our friend and their friends like Liverpool football team.
Your colleague likes Liverpool football team.
My colleagues like Liverpool football team.
Your colleague and my colleagues like Liverpool football team.
Michael's neighbor likes Liverpool football team.
Chidchanok's classmate likes Liverpool football team.
The kids like Liverpool football team.
Many people like Liverpool football team.
The world like Liverpool football team.
The students like Liverpool football team.
Many drivers like Liverpool football team.
English people like Liverpool football team.
Thai people in the north like Liverpool football team.
The teenagers like Liverpool football team.
The doctor is curing the 12 boys and their soccer coach.
I don't like Liverpool football team.
You don't like Liverpool football team.
He doesn't like Liverpool football team.
She doesn't like Liverpool football team.
It doesn't like Liverpool football team.
We don't like Liverpool football team.
They don't like Liverpool football team.
Somchai doesn't like Liverpool football team.
Ranee doesn't like Liverpool football team.
Somchai and Ranee don't like Liverpool football team.
Uncle doesn't like Liverpool football team.
Aunt doesn't like Liverpool football team.
Uncle and aunt don't like Liverpool football team.
Dad doesn't like Liverpool football team.
Mum doesn't like Liverpool football team.
Dad and mum don't like Liverpool football team.
My sister doesn't like Liverpool football team.
Her brother doesn't like Liverpool football team.
My sister and her brother don't like Liverpool football team.
Our friend doesn't like Liverpool football team.
Their friends don't like Liverpool football team.
Our friend and their friends don't like Liverpool football team.
Your colleague doesn't like Liverpool football team.
My colleagues don't like Liverpool football team.
Your colleague and mine don't like Liverpool football team.
Michael's neighbor doesn't like Liverpool football team.
Chidchanok's classmate doesn't like Liverpool football team.
The kids don't like Liverpool football team.
Many people don't like Liverpool football team.
The world doesn't like Liverpool football team.
The tailors don't like Liverpool football team.
None of them don't like Liverpool football team.
A lot of actreses don't like Liverpool football team.
A journalists doesn't like Liverpool football team.
The singers don't like Liverpool football team.
Do I like Liverpool football team?
Do you like Liverpool football team?
Does he like Liverpool football team?
Does she like Liverpool football team?
Does it like Liverpool football team?
Do we like Liverpool football team?
Do they like Liverpool football team?
Does Somchai like Liverpool football team?
Does Ranee likes Liverpool football team?
Do Somchai and Ranee like the football team?
Does uncle like Liverpool football team?
Does aunt like Liverpool football team?
Do uncle and aunt like Liverpool football team?
Does dad like Liverpool football team?
Does mum like Liverpool football team?
Do dad and mum like Liverpool football team?
Does my sister like Liverpool football team?
Does her brother like Liverpool football team?
Do my sister and her brother like Liverpool football team?
Does our friend like Liverpool football team?
Do their friends like Liverpool football team?
Do our friend and their friends like Liverpool football team?
Does your colleague like Liverpool football team?
Do my colleagues like Liverpool football team?
Do your colleague and my colleagues like Liverpool football team?
Does Michael's neighbor like Liverpool football team?
Does Chidchanok's classmate like Liverpool football team?
Do the kids like Liverpool football team?
Do many people like Liverpool football team?
Do the worlds like Liverpool football team?
Why do you like Liverpool football team?
Do the doctors like Liverpool football team?
Do some of the athletes like Liverpool football team?
Does your labor like Liverpool football team?
a. Do I like durain?
b. Does I like durain?
c. Am I like durain?
Answer: a. You did it!
b. Present perfect continuous tense.
I've known, then I've grown.
You have exercised for 30 minutes.
Tom plays tennis on Monday.
The divers rescue the Moo Pa (Wild Boar) Academy, 13 trapped in the cave.
Find the all 12 English Tenses with tenses structures, example sentences in various vocabularies and many different situations for more ease understanding.
You can bring them and use in your real life.


text:
Dave Grohl and Greg Kurstin conclude this year's Hanukkah Sessions with KISS cover
Dave Grohl and Greg Kurstin's second-annual Hanukkah Sessions has come to a close, with the pair wrapping it up with a cover of a KISS classic.
Kurstin and the Foo Fighters frontman have spent the last eight days covering songs by Jewish artists – one for each day of the Festival Of Lights – and have finished it with a rendition of the band's 1975 hit 'Rock And Roll All Nite'.
Other covers the duo have performed as part of this year's Hanukkah Sessions include Billy Joel's 'Big Shot', Van Halen's 'Jump' and Barry Manilow's 'Copacabana'. Grohl's daughter, Violet, also made a guest appearance on vocals for a cover of Amy Winehouse's 'Take The Box'.
Watch Grohl and Kurstin's cover of 'Rock And Roll All Nite', complete with KISS makeup, below:
In the description for the video, Grohl wrote: "What better way to celebrate another year of Hanukkah Sessions than Chaim Witz and Stanley Eisen… two young lads from Queens that set the world (and thousands of stages) on FIRE as Gene Simmons and Paul Stanley of KISS!!!"
He also thanked fans for the support on this year's Hanukkah Sessions, and promised its return in 2022.
"Greg and I would like to thank all of the people that helped ramp up the Hanukkah Sessions this year. It's gonna be tough to beat! (But we will. Oh, we will…)"
Next year, Foo Fighters will star in a new horror-comedy film called Studio 666, which was announced last month.
Alongside the full band – Grohl, drummer Taylor Hawkins, bassist Nate Mendel, guitarists Pat Smear and Chris Shiflett, and keyboardist Rami Jaffee – the film will also star Whitney Cummings, Leslie Grossman and Jenna Ortega.

redpajama_set_name: RedPajamaCommonCrawl


It all started with the Domino's 30 minutes or less or it's free guarantee, dry shampoo, instant coffee, and virtual thank you cards. Today we even have tiny buttons we place around the house and tap when we run out of a certain product and, voila! The product is delivered to our doorsteps.
We live in an instant gratification, fast-moving world. Every time Apple releases a new iPhone, we run to our wireless carrier to get an upgrade. A new fad diet is released and we all jump to try and lose 30 pounds overnight. We all want to get rich quick, look 10 years younger, and get a PhD in three days.
Even software applications have to keep up with the current trends in technology or they threaten to go extinct. As computers and phone systems upgrade, software must do the same.
But because we all expect results right now and we want the latest and greatest, we've become a society full of mass consumers. We use something, then throw it away and buy a new one.
Repair that toaster, vacuum cleaner, or coffee maker?
In fact, the Bureau of Labor Statistics includes small-appliance repair on its list of disappearing jobs. And, apart from a few pop-up repair shops that seem to be money losers and more fad than long-term solutions, that fact doesn't seem to be changing.
But if you ask few important questions before you change manufacturers, it can save you time, resources, money, and a large headache.
Moving from TDM to IP? Adding a new site?
VXTracker can handle that, and more. Plus we can leave the data from the old system in the application so you have a history of your call analytics.
As you change manufacturers, or versions of the software from a manufacturer, the VXTracker technical support team should be involved in getting you the correct parser and help you complete the technology upgrade of the software.
When was the last time you upgraded your VXTracker? If you have a current support contract it's free. Don't use something and then throw it out for the option of new. What you have now is the latest and greatest!
Call 866-489-8722 or email support@vxsuite.com to schedule your upgrade.
Need help with the Baby and the Bathwater idiom?


The incumbent president of Angola, Joao Lourenco, is no stranger to politics. Born in Portuguese Angola in 1954, he joined the anti-colonial struggle for independence as a member of the MPLA. After the Portuguese ceded Angola in 1975, he traveled to the Soviet Union and became educated in anti-colonial and socialist teachings. Upon his return to Angola, he quickly rose through the ranks of the MPLA's elite. His different roles included governor of Moxico (Angola's largest province), deputy speaker of the National Assembly, and, most recently, Secretary of Defense. Lourenco's political ambition did not go unnoticed by Jose dos Santos, who claimed Lourenco to be his successor for the Angolan presidency.
While the country's oil exports are booming, over half of all Angolans live in poverty.
Jose dos Santos served as President of Angola for 38 years.
Despite the fact that the majority of Angolans voted for the MPLA, as has been the case in every election, the party lost seats in the National Assembly to UNITA and other minority parties. The message is clear: Angolans are looking for real change. Lourenco marketed himself as the candidate that would ensure accountability for the government: he promised to end the cronyism and corruption that have resulted in the Angolan government "losing" US$4.2 billion between 1997-2002, roughly equivalent to the amount spent on humanitarian aid in the same amount of time.
However, the question of Lourenco's ability to enact lasting change is compounded by the fact that dos Santos maintains a lasting control over state affairs and the economy. Prior to retiring, dos Santos ensured that his interests would be met in spite of the new government: he signed a decree freezing military, security, and intelligence appointments until 2025. This ensures that his allies and friends will maintain influence over the government and military affairs; Lourenco is powerless to stop him. To further guarantee protection from prosecution, dos Santos has appointed himself President of the Republic Emiritus Honorary. This impunity, which will also be enjoyed by dos Santos' family and friends, raises the question of whether the concept of 'government accountability' will see fruition.
Another sphere of influence for dos Santos and his family is the economy. Jose dos Santos appointed his daughter, Isabel dos Santos, to the head of Sonangol, the state-owned oil company. She also maintains a 25% stake in Unitel–the country's largest mobile service provider–and 42% of Banco BIC, Angola's largest private bank. Many of dos Santos' children, cousins, and friends have benefitted from their connection to the former president; this allows them to earn money from the state and maintains dos Santos' influence over various sectors of the state. There actions are known as "neo-patrimonialism", in which state resources are used to secure loyalty. Neo-patrimonialism is endemic to corruption since those benefiting from this patron-client relationship are often reluctant to side against their patron. In this case, many of the dos Santos stalwarts remain in office and will continue to influence the economy to the benefit of their former benefactor. Furthermore, in the absence of these neo-patrimonial benefits, they are unlikely to support any anti-corruption policies that may limit their profits.
Isabel dos Santos, who owns a large portion of BIC Banco (pictured above), is Africa's first female billionaire.
Despite Joao Lourenco's claims that Jose dos Santos would wield no influence in his presidency, the fact remains that dos Santos' cult of personality continues to have considerable control over the state, military, and economy. The presence of dos Santos loyalists in influential governmental positions also ensures remnants of the old order.
In the last four decades, corruption, nepotism, and neo-patrimonialism have been the form of social trust networks for the Angolan government. For Lourenco to successfully achieve his task of stabilizing the government, he will have to undergo substantial reforms of the political and economic institutions of Angola. This will include increasing transparency and accountability to allow citizens to rebuild faith in the government.


text:
Table 2 Pediatric sarcoma study descriptions
Risk factors examined
Pooled USA, UK, Sweden, Spain, Italy, Germanya 1945–2001 [39] Mirabello et al. (2011) OS 1501 1,501,000^ Height at diagnosis, birth weight
Austrailia and Californiab 1978–1996 [40] Valery et al. (2005) ES 138 574 Hernias
USA-multiple locations (CA, MN, NY, TX, WA) 1980–2004 [41–44] Spector et al. (2009), Von Behren et al. (2010), Ognjanovic et al. (2009), Johnson et al (2009) MBT 573 & STS 1067, MBT 550 & STS 1054, RS 583, MBT 511 & STS 1000 57966, 57966, 57966, 57966 Birth weight, birth order, parental age, gestational age, and other birth characateristics
Meta-analysis USA & Canadac 1980–2002 [40] Valery et al. (2005) ES 357 745 Hernias
Cohort Connecticut, USA 1936–1979 [45] Tucker et al. (1987) MBT 64 9,170 Radiotherapy (treatment of primary childhood cancers)
Case–control Ontario, Canada 1964–1988 [46] Finkelstein et al. (1996) MBT 238 432 Radium in drinking water
North Carolina, United States 1967–1976 [47] Grufferman et al. (1982) RS 33 99 Parental smoking habits, maternal age, maternal antibiotic use, and vaccination history
Northern England 1968–2000 [48] Pearce et al. (2007) MBT 245 & STS 320 29,520 Paternal occupational exposure to electro-magnetic fields
USA-multiple locations 1972-? [47] Winn et al. (1992) ES 208 395 Parental smoking habits, hernias, and parental occupational factors
USA 1972–1997 [49] Grufferman et al. (1993) RS 322 322 Parental cocaine and marijuana use
Los Angeles, USA 1972–1981 [50] Operskalski et al. (1987) OS 64 124 Birth length, gestational age and height at diagnosis
New York State, USA 1978–1988 [51] Gelberg et al. (1997) OS 130 130 Birth weight, birth height, and pubertal growth factors
United Kingdom 1980–1983 [52, 53] Hartley et al. (1988), Hartley et al. (1988) MBT 30 & STS 43, MBT 30 & STS 43 146, 146 Birth weight, pregnancy conditions, antibiotic use after birth
Ontario, Canada 1980–1988 [54] Hum et al. (1998) MBT 152 713 Parental occupations
USA & Canada 1983–1987 [55] Buckley et al. (1998) OS 152 & ES 153 305 Birth weight, birth height, and pubertal growth factors
United Kingdom 1991–1996 [56] Smith et al. (2009) MBT & STS 251 6,337 Birth weight and gender
Austrailia 1991–1996 [57, 58] Valery et al. (2003), Valery et al. (2002) ES 106, ES 106 344, 344 Parental occupation, hernias, and pubertal growth factors
USA-multIple locations 1992–1995 [59] Bassin et al. (2006) 139 280 Fluoride levels in drinking water
Germany 1992–1997 [60, 61] Schuz et al. (2007), Shuz et al. (1999) MBT 97 & STS 137, MBT 97 & STS 137 2057, 2588 Birth weight, family size, maternal age, gestational age, paternal smoking, birth weight for gestational age, and other birth characateristics
USA-multiple locations 1994–2000 [62] Troisi et al. (2006) OS 158 141 Birth weight, birth length, birth order, height and weight at diagnosis, and other pubertal growth factors
Case-series USA-multiple locations 1972–1978 [63] Pendergrass et al. (1984) ES 291 N/A Adolescence stature: height and weight
United Kingdom 1978–1997 [64] Cotterill et al. (2004) MBT 720 N/A Adolescent height, stature, and growth factors
^2000 U.S. National Center for Health Statistics Simulated Controls.
Already referenced studies included in pooled/meta analyses: a[41, 62, 64]b[57]c[54, 65].


The following downloadable data are available through the contributions of partnering agencies. The majority of the data and information, located in databases maintained by the partnering agencies, is accessible from this clearinghouse via hypertext links.
The USGS provides two free downloadable software tools (Dem3d and Dlgv32 viewers) for viewing digital data. For more information and downloads of the viewers, please visit the Dem3d Viewer and Dlgv32 Viewer pages.
Click on the topic title to go to that web page.
Click on Download to download data.
Click on Metadata for information about the data.
EarthExplorer -- to query and order satellite images, aerial photographs, and cartographic products through the USGS.
Status graphics and product description of USGS geospatial data.


The stunning DVD set climbs of the Tour de France consists of no less than 6 DVD's enough for many hours of training fun. This set contains the climbs of Alpe d'Huez, Col de l'Izoard, Mont Ventoux (all sides) and the Col de la Bonette.
The Bonette is also included in the roadmap of the Tour de France in 2015. The finish is in one of the stages on top of the Col de la Bonette-Restefond, the highest ever Tour Arrival.


This stunning and beautifully situated 1 bedroom apartment presents incredible value at just $400,000 and must be considered!
On offer is prime sixth floor positioning with a North-facing aspect, an open and modern design with generous bedroom area, 2-way ensuite and the convenience of a multi-purpose room, that perfect second media room or study area. Timber flooring, ducted air conditioning and superior fittings complete the space, and ensure this apartment is a space you will love coming home to!


So your thinking about owning a Static Holiday Caravan!!!
Buying a static caravan holiday home is a major lifestyle choice. Doing so enables you to own a "home from home"; somewhere relaxing to escape to when it's time for a hard-earned break from the daily grind.
Owning your own holiday caravan also gives you a base from which to enjoy fantastic holidays with your nearest and dearest, year after year.
However, the process of searching for, and subsequently purchasing, a holiday caravan can be an overwhelming one. With so much choice on offer – in terms of caravan models, park and location – choosing the unit that best suits your needs means grappling with a vast amount of data. The key to making the right choice is to filter out all the bumf, leaving you with only useful and pertinent info.
The purchase of a static caravan holiday home should be approached in the right way. Don't think of it as a financial investment, rather as a long-term lifestyle choice.
Talk to a static caravan owner about the benefits of purchasing a holiday home unit and they are likely to list things like "improved family time", "a more relaxed life" and "truckloads of fond memories" among the perks. They are less likely to mention things like "profits" or "financial investment", as these are often non-existent. Enter into the purchase for the right reasons or be disappointed; the choice is yours.
To recoup some of the cost of owning a holiday caravan, you can sublet your unit to other tenants when you aren't using it. However, this is only managing the expenditure; you are still unlikely to turn a financial profit from your caravan.
It goes without saying that the location of your holiday caravan is vital to your enjoyment of it. You're purchasing a holiday home in a place where you hope to be able to enjoy year upon year of top quality holidays, so choose a location that you are in love with.
Distance from your home is another thing to take into account. How much of a difference this makes really depends on how you intend to use your caravan; if you favour regular weekend breaks over bi-annual, multi-week getaways, a caravan within a couple of hours drive from your home is the best bet.
If you plan to be away for several weeks at a time, once or twice a year, you will have more scope in terms of where to site your holiday caravan. However, if you plan to give your family and friends access to your holiday caravan also, this may influence your choice of location.
With a rough area in mind, it's time to focus on what the locality can offer you; things like visitor attractions, outdoor activities and access to local countryside are all factors that can make a certain holiday location more attractive than another.
How far is the caravan from your home?
For how long do you plan to visit at a time?
How far is the caravan from the homes of other uses, such as friends and family?
What local attractions are nearby?
Choosing a location that suits you is only part of the process. Most popular tourist destinations in the UK will boast substantial numbers of parks, all with their own pros and cons and with features that will suit different users.
going to get years of holiday enjoyment out of if you've never visited it?
Whether you visit the park on a sales day, visit a friend's caravan on the park or even rent a caravan of your own for a short holiday, getting up close and personal with the park before you buy is vital to making the right choice.
Not only will you be able to get a sense of what it would be like to live on the park, this will also give you the opportunity to meet with the sales team and take a look at the different floor plans and layouts of the caravans that the park have on offer. At Pakefield Caravan Park, if you decide to take a holiday with a view to possibly purchasing a caravan, let us know; we will take the cost of your holiday off the purchase price if you decide to purchase a caravan from us.
When selecting a park, it is best to try to narrow your search to parks that offer specifically what you are looking for. Most parks will be tailored to suit the needs of certain "user profiles"; i.e. families with young children, young adults or retirees. The main differences will be found in the facilities that each park has to offer: While parks aimed at younger people with have more in the way of evening entertainment, a park aimed at families with young children will have facilities tailored to the needs of such youngsters. Another difference will be found in the atmosphere of the park, with parks aimed at retirees having a far quieter, more relaxed atmosphere than one with young children on it.
Pakefield Caravan Park enjoys a stunning, peaceful setting on the Sunrise Coast of Suffolk. With fabulous sea views and direct access to a sand and shingle beach, Pakefield is the ideal base from which to explore the coastal resorts and villages of Suffolk and Norfolk.
While our park is open for 9 months of the year, closing for several weeks for maintenance during the off-season, some parks will be open for the full 12 months. However, it should be noted that owning a caravan on a 12-month park is not a license to move into the park permanently; a holiday caravan is a holiday caravan, after all, and should be treated as such.
Get to know the park.
Decide whether the park feels right for you.
Check out the park's facilities.
Enquire about events on the park.
Find out how long you can site your Static Caravan on your pitch.
On our next post we will look at the running costs and things to look out for.