/**
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License. See License.txt in the project root for
 * license information.
 *
 * Code generated by Microsoft (R) AutoRest Code Generator.
 */

package com.microsoft.azure.cognitiveservices.vision.faceapi.models;

import com.fasterxml.jackson.annotation.JsonProperty;

/**
 * A collection of 27-point face landmarks pointing to the important positions
 * of face components.
 */
public class FaceLandmarks {
    /**
     * The pupilLeft property.
     */
    @JsonProperty(value = "pupilLeft")
    private Coordinate pupilLeft;

    /**
     * The pupilRight property.
     */
    @JsonProperty(value = "pupilRight")
    private Coordinate pupilRight;

    /**
     * The noseTip property.
     */
    @JsonProperty(value = "noseTip")
    private Coordinate noseTip;

    /**
     * The mouthLeft property.
     */
    @JsonProperty(value = "mouthLeft")
    private Coordinate mouthLeft;

    /**
     * The mouthRight property.
     */
    @JsonProperty(value = "mouthRight")
    private Coordinate mouthRight;

    /**
     * The eyebrowLeftOuter property.
     */
    @JsonProperty(value = "eyebrowLeftOuter")
    private Coordinate eyebrowLeftOuter;

    /**
     * The eyebrowLeftInner property.
     */
    @JsonProperty(value = "eyebrowLeftInner")
    private Coordinate eyebrowLeftInner;

    /**
     * The eyeLeftOuter property.
     */
    @JsonProperty(value = "eyeLeftOuter")
    private Coordinate eyeLeftOuter;

    /**
     * The eyeLeftTop property.
     */
    @JsonProperty(value = "eyeLeftTop")
    private Coordinate eyeLeftTop;

    /**
     * The eyeLeftBottom property.
     */
    @JsonProperty(value = "eyeLeftBottom")
    private Coordinate eyeLeftBottom;

    /**
     * The eyeLeftInner property.
     */
    @JsonProperty(value = "eyeLeftInner")
    private Coordinate eyeLeftInner;

    /**
     * The eyebrowRightInner property.
     */
    @JsonProperty(value = "eyebrowRightInner")
    private Coordinate eyebrowRightInner;

    /**
     * The eyebrowRightOuter property.
     */
    @JsonProperty(value = "eyebrowRightOuter")
    private Coordinate eyebrowRightOuter;

    /**
     * The eyeRightInner property.
     */
    @JsonProperty(value = "eyeRightInner")
    private Coordinate eyeRightInner;

    /**
     * The eyeRightTop property.
     */
    @JsonProperty(value = "eyeRightTop")
    private Coordinate eyeRightTop;

    /**
     * The eyeRightBottom property.
     */
    @JsonProperty(value = "eyeRightBottom")
    private Coordinate eyeRightBottom;

    /**
     * The eyeRightOuter property.
     */
    @JsonProperty(value = "eyeRightOuter")
    private Coordinate eyeRightOuter;

    /**
     * The noseRootLeft property.
     */
    @JsonProperty(value = "noseRootLeft")
    private Coordinate noseRootLeft;

    /**
     * The noseRootRight property.
     */
    @JsonProperty(value = "noseRootRight")
    private Coordinate noseRootRight;

    /**
     * The noseLeftAlarTop property.
     */
    @JsonProperty(value = "noseLeftAlarTop")
    private Coordinate noseLeftAlarTop;

    /**
     * The noseRightAlarTop property.
     */
    @JsonProperty(value = "noseRightAlarTop")
    private Coordinate noseRightAlarTop;

    /**
     * The noseLeftAlarOutTip property.
     */
    @JsonProperty(value = "noseLeftAlarOutTip")
    private Coordinate noseLeftAlarOutTip;

    /**
     * The noseRightAlarOutTip property.
     */
    @JsonProperty(value = "noseRightAlarOutTip")
    private Coordinate noseRightAlarOutTip;

    /**
     * The upperLipTop property.
     */
    @JsonProperty(value = "upperLipTop")
    private Coordinate upperLipTop;

    /**
     * The upperLipBottom property.
     */
    @JsonProperty(value = "upperLipBottom")
    private Coordinate upperLipBottom;

    /**
     * The underLipTop property.
     */
    @JsonProperty(value = "underLipTop")
    private Coordinate underLipTop;

    /**
     * The underLipBottom property.
     */
    @JsonProperty(value = "underLipBottom")
    private Coordinate underLipBottom;

    /**
     * Get the pupilLeft value.
     *
     * @return the pupilLeft value
     */
    public Coordinate pupilLeft() {
        return this.pupilLeft;
    }

    /**
     * Set the pupilLeft value.
     *
     * @param pupilLeft the pupilLeft value to set
     * @return the FaceLandmarks object itself.
     */
    public FaceLandmarks withPupilLeft(Coordinate pupilLeft) {
        this.pupilLeft = pupilLeft;
        return this;
    }

    /**
     * Get the pupilRight value.
     *
     * @return the pupilRight value
     */
    public Coordinate pupilRight() {
        return this.pupilRight;
    }

    /**
     * Set the pupilRight value.
     *
     * @param pupilRight the pupilRight value to set
     * @return the FaceLandmarks object itself.
     */
    public FaceLandmarks withPupilRight(Coordinate pupilRight) {
        this.pupilRight = pupilRight;
        return this;
    }

    /**
     * Get the noseTip value.
     *
     * @return the noseTip value
     */
    public Coordinate noseTip() {
        return this.noseTip;
    }

    /**
     * Set the noseTip value.
     *
     * @param noseTip the noseTip value to set
     * @return the FaceLandmarks object itself.
     */
    public FaceLandmarks withNoseTip(Coordinate noseTip) {
        this.noseTip = noseTip;
        return this;
    }

    /**
     * Get the mouthLeft value.
     *
     * @return the mouthLeft value
     */
    public Coordinate mouthLeft() {
        return this.mouthLeft;
    }

    /**
     * Set the mouthLeft value.
     *
     * @param mouthLeft the mouthLeft value to set
     * @return the FaceLandmarks object itself.
     */
    public FaceLandmarks withMouthLeft(Coordinate mouthLeft) {
        this.mouthLeft = mouthLeft;
        return this;
    }

    /**
     * Get the mouthRight value.
     *
     * @return the mouthRight value
     */
    public Coordinate mouthRight() {
        return this.mouthRight;
    }

    /**
     * Set the mouthRight value.
     *
     * @param mouthRight the mouthRight value to set
     * @return the FaceLandmarks object itself.
     */
    public FaceLandmarks withMouthRight(Coordinate mouthRight) {
        this.mouthRight = mouthRight;
        return this;
    }

    /**
     * Get the eyebrowLeftOuter value.
     *
     * @return the eyebrowLeftOuter value
     */
    public Coordinate eyebrowLeftOuter() {
        return this.eyebrowLeftOuter;
    }

    /**
     * Set the eyebrowLeftOuter value.
     *
     * @param eyebrowLeftOuter the eyebrowLeftOuter value to set
     * @return the FaceLandmarks object itself.
     */
    public FaceLandmarks withEyebrowLeftOuter(Coordinate eyebrowLeftOuter) {
        this.eyebrowLeftOuter = eyebrowLeftOuter;
        return this;
    }

    /**
     * Get the eyebrowLeftInner value.
     *
     * @return the eyebrowLeftInner value
     */
    public Coordinate eyebrowLeftInner() {
        return this.eyebrowLeftInner;
    }

    /**
     * Set the eyebrowLeftInner value.
     *
     * @param eyebrowLeftInner the eyebrowLeftInner value to set
     * @return the FaceLandmarks object itself.
     */
    public FaceLandmarks withEyebrowLeftInner(Coordinate eyebrowLeftInner) {
        this.eyebrowLeftInner = eyebrowLeftInner;
        return this;
    }

    /**
     * Get the eyeLeftOuter value.
     *
     * @return the eyeLeftOuter value
     */
    public Coordinate eyeLeftOuter() {
        return this.eyeLeftOuter;
    }

    /**
     * Set the eyeLeftOuter value.
     *
     * @param eyeLeftOuter the eyeLeftOuter value to set
     * @return the FaceLandmarks object itself.
     */
    public FaceLandmarks withEyeLeftOuter(Coordinate eyeLeftOuter) {
        this.eyeLeftOuter = eyeLeftOuter;
        return this;
    }

    /**
     * Get the eyeLeftTop value.
     *
     * @return the eyeLeftTop value
     */
    public Coordinate eyeLeftTop() {
        return this.eyeLeftTop;
    }

    /**
     * Set the eyeLeftTop value.
     *
     * @param eyeLeftTop the eyeLeftTop value to set
     * @return the FaceLandmarks object itself.
     */
    public FaceLandmarks withEyeLeftTop(Coordinate eyeLeftTop) {
        this.eyeLeftTop = eyeLeftTop;
        return this;
    }

    /**
     * Get the eyeLeftBottom value.
     *
     * @return the eyeLeftBottom value
     */
    public Coordinate eyeLeftBottom() {
        return this.eyeLeftBottom;
    }

    /**
     * Set the eyeLeftBottom value.
     *
     * @param eyeLeftBottom the eyeLeftBottom value to set
     * @return the FaceLandmarks object itself.
     */
    public FaceLandmarks withEyeLeftBottom(Coordinate eyeLeftBottom) {
        this.eyeLeftBottom = eyeLeftBottom;
        return this;
    }

    /**
     * Get the eyeLeftInner value.
     *
     * @return the eyeLeftInner value
     */
    public Coordinate eyeLeftInner() {
        return this.eyeLeftInner;
    }

    /**
     * Set the eyeLeftInner value.
     *
     * @param eyeLeftInner the eyeLeftInner value to set
     * @return the FaceLandmarks object itself.
     */
    public FaceLandmarks withEyeLeftInner(Coordinate eyeLeftInner) {
        this.eyeLeftInner = eyeLeftInner;
        return this;
    }

    /**
     * Get the eyebrowRightInner value.
     *
     * @return the eyebrowRightInner value
     */
    public Coordinate eyebrowRightInner() {
        return this.eyebrowRightInner;
    }

    /**
     * Set the eyebrowRightInner value.
     *
     * @param eyebrowRightInner the eyebrowRightInner value to set
     * @return the FaceLandmarks object itself.
     */
    public FaceLandmarks withEyebrowRightInner(Coordinate eyebrowRightInner) {
        this.eyebrowRightInner = eyebrowRightInner;
        return this;
    }

    /**
     * Get the eyebrowRightOuter value.
     *
     * @return the eyebrowRightOuter value
     */
    public Coordinate eyebrowRightOuter() {
        return this.eyebrowRightOuter;
    }

    /**
     * Set the eyebrowRightOuter value.
     *
     * @param eyebrowRightOuter the eyebrowRightOuter value to set
     * @return the FaceLandmarks object itself.
     */
    public FaceLandmarks withEyebrowRightOuter(Coordinate eyebrowRightOuter) {
        this.eyebrowRightOuter = eyebrowRightOuter;
        return this;
    }

    /**
     * Get the eyeRightInner value.
     *
     * @return the eyeRightInner value
     */
    public Coordinate eyeRightInner() {
        return this.eyeRightInner;
    }

    /**
     * Set the eyeRightInner value.
     *
     * @param eyeRightInner the eyeRightInner value to set
     * @return the FaceLandmarks object itself.
     */
    public FaceLandmarks withEyeRightInner(Coordinate eyeRightInner) {
        this.eyeRightInner = eyeRightInner;
        return this;
    }

    /**
     * Get the eyeRightTop value.
     *
     * @return the eyeRightTop value
     */
    public Coordinate eyeRightTop() {
        return this.eyeRightTop;
    }

    /**
     * Set the eyeRightTop value.
     *
     * @param eyeRightTop the eyeRightTop value to set
     * @return the FaceLandmarks object itself.
     */
    public FaceLandmarks withEyeRightTop(Coordinate eyeRightTop) {
        this.eyeRightTop = eyeRightTop;
        return this;
    }

    /**
     * Get the eyeRightBottom value.
     *
     * @return the eyeRightBottom value
     */
    public Coordinate eyeRightBottom() {
        return this.eyeRightBottom;
    }

    /**
     * Set the eyeRightBottom value.
     *
     * @param eyeRightBottom the eyeRightBottom value to set
     * @return the FaceLandmarks object itself.
     */
    public FaceLandmarks withEyeRightBottom(Coordinate eyeRightBottom) {
        this.eyeRightBottom = eyeRightBottom;
        return this;
    }

    /**
     * Get the eyeRightOuter value.
     *
     * @return the eyeRightOuter value
     */
    public Coordinate eyeRightOuter() {
        return this.eyeRightOuter;
    }

    /**
     * Set the eyeRightOuter value.
     *
     * @param eyeRightOuter the eyeRightOuter value to set
     * @return the FaceLandmarks object itself.
     */
    public FaceLandmarks withEyeRightOuter(Coordinate eyeRightOuter) {
        this.eyeRightOuter = eyeRightOuter;
        return this;
    }

    /**
     * Get the noseRootLeft value.
     *
     * @return the noseRootLeft value
     */
    public Coordinate noseRootLeft() {
        return this.noseRootLeft;
    }

    /**
     * Set the noseRootLeft value.
     *
     * @param noseRootLeft the noseRootLeft value to set
     * @return the FaceLandmarks object itself.
     */
    public FaceLandmarks withNoseRootLeft(Coordinate noseRootLeft) {
        this.noseRootLeft = noseRootLeft;
        return this;
    }

    /**
     * Get the noseRootRight value.
     *
     * @return the noseRootRight value
     */
    public Coordinate noseRootRight() {
        return this.noseRootRight;
    }

    /**
     * Set the noseRootRight value.
     *
     * @param noseRootRight the noseRootRight value to set
     * @return the FaceLandmarks object itself.
     */
    public FaceLandmarks withNoseRootRight(Coordinate noseRootRight) {
        this.noseRootRight = noseRootRight;
        return this;
    }

    /**
     * Get the noseLeftAlarTop value.
     *
     * @return the noseLeftAlarTop value
     */
    public Coordinate noseLeftAlarTop() {
        return this.noseLeftAlarTop;
    }

    /**
     * Set the noseLeftAlarTop value.
     *
     * @param noseLeftAlarTop the noseLeftAlarTop value to set
     * @return the FaceLandmarks object itself.
     */
    public FaceLandmarks withNoseLeftAlarTop(Coordinate noseLeftAlarTop) {
        this.noseLeftAlarTop = noseLeftAlarTop;
        return this;
    }

    /**
     * Get the noseRightAlarTop value.
     *
     * @return the noseRightAlarTop value
     */
    public Coordinate noseRightAlarTop() {
        return this.noseRightAlarTop;
    }

    /**
     * Set the noseRightAlarTop value.
     *
     * @param noseRightAlarTop the noseRightAlarTop value to set
     * @return the FaceLandmarks object itself.
     */
    public FaceLandmarks withNoseRightAlarTop(Coordinate noseRightAlarTop) {
        this.noseRightAlarTop = noseRightAlarTop;
        return this;
    }

    /**
     * Get the noseLeftAlarOutTip value.
     *
     * @return the noseLeftAlarOutTip value
     */
    public Coordinate noseLeftAlarOutTip() {
        return this.noseLeftAlarOutTip;
    }

    /**
     * Set the noseLeftAlarOutTip value.
     *
     * @param noseLeftAlarOutTip the noseLeftAlarOutTip value to set
     * @return the FaceLandmarks object itself.
     */
    public FaceLandmarks withNoseLeftAlarOutTip(Coordinate noseLeftAlarOutTip) {
        this.noseLeftAlarOutTip = noseLeftAlarOutTip;
        return this;
    }

    /**
     * Get the noseRightAlarOutTip value.
     *
     * @return the noseRightAlarOutTip value
     */
    public Coordinate noseRightAlarOutTip() {
        return this.noseRightAlarOutTip;
    }

    /**
     * Set the noseRightAlarOutTip value.
     *
     * @param noseRightAlarOutTip the noseRightAlarOutTip value to set
     * @return the FaceLandmarks object itself.
     */
    public FaceLandmarks withNoseRightAlarOutTip(Coordinate noseRightAlarOutTip) {
        this.noseRightAlarOutTip = noseRightAlarOutTip;
        return this;
    }

    /**
     * Get the upperLipTop value.
     *
     * @return the upperLipTop value
     */
    public Coordinate upperLipTop() {
        return this.upperLipTop;
    }

    /**
     * Set the upperLipTop value.
     *
     * @param upperLipTop the upperLipTop value to set
     * @return the FaceLandmarks object itself.
     */
    public FaceLandmarks withUpperLipTop(Coordinate upperLipTop) {
        this.upperLipTop = upperLipTop;
        return this;
    }

    /**
     * Get the upperLipBottom value.
     *
     * @return the upperLipBottom value
     */
    public Coordinate upperLipBottom() {
        return this.upperLipBottom;
    }

    /**
     * Set the upperLipBottom value.
     *
     * @param upperLipBottom the upperLipBottom value to set
     * @return the FaceLandmarks object itself.
     */
    public FaceLandmarks withUpperLipBottom(Coordinate upperLipBottom) {
        this.upperLipBottom = upperLipBottom;
        return this;
    }

    /**
     * Get the underLipTop value.
     *
     * @return the underLipTop value
     */
    public Coordinate underLipTop() {
        return this.underLipTop;
    }

    /**
     * Set the underLipTop value.
     *
     * @param underLipTop the underLipTop value to set
     * @return the FaceLandmarks object itself.
     */
    public FaceLandmarks withUnderLipTop(Coordinate underLipTop) {
        this.underLipTop = underLipTop;
        return this;
    }

    /**
     * Get the underLipBottom value.
     *
     * @return the underLipBottom value
     */
    public Coordinate underLipBottom() {
        return this.underLipBottom;
    }

    /**
     * Set the underLipBottom value.
     *
     * @param underLipBottom the underLipBottom value to set
     * @return the FaceLandmarks object itself.
     */
    public FaceLandmarks withUnderLipBottom(Coordinate underLipBottom) {
        this.underLipBottom = underLipBottom;
        return this;
    }

}
