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

package com.azure.resourcemanager.recoveryservicessiterecovery.models;

import com.azure.core.annotation.Fluent;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.annotation.JsonTypeName;

/** Model class for event details of a job status event. */
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
@JsonTypeName("JobStatus")
@Fluent
public final class JobStatusEventDetails extends EventSpecificDetails {
    /*
     * Job arm id for the event.
     */
    @JsonProperty(value = "jobId")
    private String jobId;

    /*
     * JobName for the Event.
     */
    @JsonProperty(value = "jobFriendlyName")
    private String jobFriendlyName;

    /*
     * JobStatus for the Event.
     */
    @JsonProperty(value = "jobStatus")
    private String jobStatus;

    /*
     * AffectedObjectType for the event.
     */
    @JsonProperty(value = "affectedObjectType")
    private String affectedObjectType;

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

    /**
     * Get the jobId property: Job arm id for the event.
     *
     * @return the jobId value.
     */
    public String jobId() {
        return this.jobId;
    }

    /**
     * Set the jobId property: Job arm id for the event.
     *
     * @param jobId the jobId value to set.
     * @return the JobStatusEventDetails object itself.
     */
    public JobStatusEventDetails withJobId(String jobId) {
        this.jobId = jobId;
        return this;
    }

    /**
     * Get the jobFriendlyName property: JobName for the Event.
     *
     * @return the jobFriendlyName value.
     */
    public String jobFriendlyName() {
        return this.jobFriendlyName;
    }

    /**
     * Set the jobFriendlyName property: JobName for the Event.
     *
     * @param jobFriendlyName the jobFriendlyName value to set.
     * @return the JobStatusEventDetails object itself.
     */
    public JobStatusEventDetails withJobFriendlyName(String jobFriendlyName) {
        this.jobFriendlyName = jobFriendlyName;
        return this;
    }

    /**
     * Get the jobStatus property: JobStatus for the Event.
     *
     * @return the jobStatus value.
     */
    public String jobStatus() {
        return this.jobStatus;
    }

    /**
     * Set the jobStatus property: JobStatus for the Event.
     *
     * @param jobStatus the jobStatus value to set.
     * @return the JobStatusEventDetails object itself.
     */
    public JobStatusEventDetails withJobStatus(String jobStatus) {
        this.jobStatus = jobStatus;
        return this;
    }

    /**
     * Get the affectedObjectType property: AffectedObjectType for the event.
     *
     * @return the affectedObjectType value.
     */
    public String affectedObjectType() {
        return this.affectedObjectType;
    }

    /**
     * Set the affectedObjectType property: AffectedObjectType for the event.
     *
     * @param affectedObjectType the affectedObjectType value to set.
     * @return the JobStatusEventDetails object itself.
     */
    public JobStatusEventDetails withAffectedObjectType(String affectedObjectType) {
        this.affectedObjectType = affectedObjectType;
        return this;
    }

    /**
     * Validates the instance.
     *
     * @throws IllegalArgumentException thrown if the instance is not valid.
     */
    @Override
    public void validate() {
        super.validate();
    }
}
