All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.azure.resourcemanager.network.fluent.models.PacketCaptureParameters Maven / Gradle / Ivy

Go to download

This package contains Microsoft Azure Network Management SDK. For documentation on how to use this package, please see https://aka.ms/azsdk/java/mgmt

There is a newer version: 2.44.0
Show newest version
// 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.fluent.models;

import com.azure.core.annotation.Fluent;
import com.azure.core.util.logging.ClientLogger;
import com.azure.resourcemanager.network.models.PacketCaptureFilter;
import com.azure.resourcemanager.network.models.PacketCaptureMachineScope;
import com.azure.resourcemanager.network.models.PacketCaptureSettings;
import com.azure.resourcemanager.network.models.PacketCaptureStorageLocation;
import com.azure.resourcemanager.network.models.PacketCaptureTargetType;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;

/**
 * Parameters that define the create packet capture operation.
 */
@Fluent
public class PacketCaptureParameters {
    /*
     * The ID of the targeted resource, only AzureVM and AzureVMSS as target type are currently supported.
     */
    @JsonProperty(value = "target", required = true)
    private String target;

    /*
     * A list of AzureVMSS instances which can be included or excluded to run packet capture. If both included and excluded are empty, then the packet capture will run on all instances of AzureVMSS.
     */
    @JsonProperty(value = "scope")
    private PacketCaptureMachineScope scope;

    /*
     * Target type of the resource provided.
     */
    @JsonProperty(value = "targetType")
    private PacketCaptureTargetType targetType;

    /*
     * Number of bytes captured per packet, the remaining bytes are truncated.
     */
    @JsonProperty(value = "bytesToCapturePerPacket")
    private Long bytesToCapturePerPacket;

    /*
     * Maximum size of the capture output.
     */
    @JsonProperty(value = "totalBytesPerSession")
    private Long totalBytesPerSession;

    /*
     * Maximum duration of the capture session in seconds.
     */
    @JsonProperty(value = "timeLimitInSeconds")
    private Integer timeLimitInSeconds;

    /*
     * The storage location for a packet capture session.
     */
    @JsonProperty(value = "storageLocation", required = true)
    private PacketCaptureStorageLocation storageLocation;

    /*
     * A list of packet capture filters.
     */
    @JsonProperty(value = "filters")
    private List filters;

    /*
     * This continuous capture is a nullable boolean, which can hold 'null', 'true' or 'false' value. If we do not pass this parameter, it would be consider as 'null', default value is 'null'.
     */
    @JsonProperty(value = "continuousCapture")
    private Boolean continuousCapture;

    /*
     * The capture setting holds the 'FileCount', 'FileSizeInBytes', 'SessionTimeLimitInSeconds' values.
     */
    @JsonProperty(value = "captureSettings")
    private PacketCaptureSettings captureSettings;

    /**
     * Creates an instance of PacketCaptureParameters class.
     */
    public PacketCaptureParameters() {
    }

    /**
     * Get the target property: The ID of the targeted resource, only AzureVM and AzureVMSS as target type are currently
     * supported.
     * 
     * @return the target value.
     */
    public String target() {
        return this.target;
    }

    /**
     * Set the target property: The ID of the targeted resource, only AzureVM and AzureVMSS as target type are currently
     * supported.
     * 
     * @param target the target value to set.
     * @return the PacketCaptureParameters object itself.
     */
    public PacketCaptureParameters withTarget(String target) {
        this.target = target;
        return this;
    }

    /**
     * Get the scope property: A list of AzureVMSS instances which can be included or excluded to run packet capture. If
     * both included and excluded are empty, then the packet capture will run on all instances of AzureVMSS.
     * 
     * @return the scope value.
     */
    public PacketCaptureMachineScope scope() {
        return this.scope;
    }

    /**
     * Set the scope property: A list of AzureVMSS instances which can be included or excluded to run packet capture. If
     * both included and excluded are empty, then the packet capture will run on all instances of AzureVMSS.
     * 
     * @param scope the scope value to set.
     * @return the PacketCaptureParameters object itself.
     */
    public PacketCaptureParameters withScope(PacketCaptureMachineScope scope) {
        this.scope = scope;
        return this;
    }

    /**
     * Get the targetType property: Target type of the resource provided.
     * 
     * @return the targetType value.
     */
    public PacketCaptureTargetType targetType() {
        return this.targetType;
    }

    /**
     * Set the targetType property: Target type of the resource provided.
     * 
     * @param targetType the targetType value to set.
     * @return the PacketCaptureParameters object itself.
     */
    public PacketCaptureParameters withTargetType(PacketCaptureTargetType targetType) {
        this.targetType = targetType;
        return this;
    }

    /**
     * Get the bytesToCapturePerPacket property: Number of bytes captured per packet, the remaining bytes are truncated.
     * 
     * @return the bytesToCapturePerPacket value.
     */
    public Long bytesToCapturePerPacket() {
        return this.bytesToCapturePerPacket;
    }

    /**
     * Set the bytesToCapturePerPacket property: Number of bytes captured per packet, the remaining bytes are truncated.
     * 
     * @param bytesToCapturePerPacket the bytesToCapturePerPacket value to set.
     * @return the PacketCaptureParameters object itself.
     */
    public PacketCaptureParameters withBytesToCapturePerPacket(Long bytesToCapturePerPacket) {
        this.bytesToCapturePerPacket = bytesToCapturePerPacket;
        return this;
    }

    /**
     * Get the totalBytesPerSession property: Maximum size of the capture output.
     * 
     * @return the totalBytesPerSession value.
     */
    public Long totalBytesPerSession() {
        return this.totalBytesPerSession;
    }

    /**
     * Set the totalBytesPerSession property: Maximum size of the capture output.
     * 
     * @param totalBytesPerSession the totalBytesPerSession value to set.
     * @return the PacketCaptureParameters object itself.
     */
    public PacketCaptureParameters withTotalBytesPerSession(Long totalBytesPerSession) {
        this.totalBytesPerSession = totalBytesPerSession;
        return this;
    }

    /**
     * Get the timeLimitInSeconds property: Maximum duration of the capture session in seconds.
     * 
     * @return the timeLimitInSeconds value.
     */
    public Integer timeLimitInSeconds() {
        return this.timeLimitInSeconds;
    }

    /**
     * Set the timeLimitInSeconds property: Maximum duration of the capture session in seconds.
     * 
     * @param timeLimitInSeconds the timeLimitInSeconds value to set.
     * @return the PacketCaptureParameters object itself.
     */
    public PacketCaptureParameters withTimeLimitInSeconds(Integer timeLimitInSeconds) {
        this.timeLimitInSeconds = timeLimitInSeconds;
        return this;
    }

    /**
     * Get the storageLocation property: The storage location for a packet capture session.
     * 
     * @return the storageLocation value.
     */
    public PacketCaptureStorageLocation storageLocation() {
        return this.storageLocation;
    }

    /**
     * Set the storageLocation property: The storage location for a packet capture session.
     * 
     * @param storageLocation the storageLocation value to set.
     * @return the PacketCaptureParameters object itself.
     */
    public PacketCaptureParameters withStorageLocation(PacketCaptureStorageLocation storageLocation) {
        this.storageLocation = storageLocation;
        return this;
    }

    /**
     * Get the filters property: A list of packet capture filters.
     * 
     * @return the filters value.
     */
    public List filters() {
        return this.filters;
    }

    /**
     * Set the filters property: A list of packet capture filters.
     * 
     * @param filters the filters value to set.
     * @return the PacketCaptureParameters object itself.
     */
    public PacketCaptureParameters withFilters(List filters) {
        this.filters = filters;
        return this;
    }

    /**
     * Get the continuousCapture property: This continuous capture is a nullable boolean, which can hold 'null', 'true'
     * or 'false' value. If we do not pass this parameter, it would be consider as 'null', default value is 'null'.
     * 
     * @return the continuousCapture value.
     */
    public Boolean continuousCapture() {
        return this.continuousCapture;
    }

    /**
     * Set the continuousCapture property: This continuous capture is a nullable boolean, which can hold 'null', 'true'
     * or 'false' value. If we do not pass this parameter, it would be consider as 'null', default value is 'null'.
     * 
     * @param continuousCapture the continuousCapture value to set.
     * @return the PacketCaptureParameters object itself.
     */
    public PacketCaptureParameters withContinuousCapture(Boolean continuousCapture) {
        this.continuousCapture = continuousCapture;
        return this;
    }

    /**
     * Get the captureSettings property: The capture setting holds the 'FileCount', 'FileSizeInBytes',
     * 'SessionTimeLimitInSeconds' values.
     * 
     * @return the captureSettings value.
     */
    public PacketCaptureSettings captureSettings() {
        return this.captureSettings;
    }

    /**
     * Set the captureSettings property: The capture setting holds the 'FileCount', 'FileSizeInBytes',
     * 'SessionTimeLimitInSeconds' values.
     * 
     * @param captureSettings the captureSettings value to set.
     * @return the PacketCaptureParameters object itself.
     */
    public PacketCaptureParameters withCaptureSettings(PacketCaptureSettings captureSettings) {
        this.captureSettings = captureSettings;
        return this;
    }

    /**
     * Validates the instance.
     * 
     * @throws IllegalArgumentException thrown if the instance is not valid.
     */
    public void validate() {
        if (target() == null) {
            throw LOGGER.atError()
                .log(new IllegalArgumentException("Missing required property target in model PacketCaptureParameters"));
        }
        if (scope() != null) {
            scope().validate();
        }
        if (storageLocation() == null) {
            throw LOGGER.atError()
                .log(new IllegalArgumentException(
                    "Missing required property storageLocation in model PacketCaptureParameters"));
        } else {
            storageLocation().validate();
        }
        if (filters() != null) {
            filters().forEach(e -> e.validate());
        }
        if (captureSettings() != null) {
            captureSettings().validate();
        }
    }

    private static final ClientLogger LOGGER = new ClientLogger(PacketCaptureParameters.class);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy