<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/container/v1/cluster_service.proto

namespace Google\Cloud\Container\V1;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\RepeatedField;
use Google\Protobuf\Internal\GPBUtil;

/**
 * Jwk is a JSON Web Key as specified in RFC 7517
 *
 * Generated from protobuf message <code>google.container.v1.Jwk</code>
 */
class Jwk extends \Google\Protobuf\Internal\Message
{
    /**
     * Key Type.
     *
     * Generated from protobuf field <code>string kty = 1;</code>
     */
    private $kty = '';
    /**
     * Algorithm.
     *
     * Generated from protobuf field <code>string alg = 2;</code>
     */
    private $alg = '';
    /**
     * Permitted uses for the public keys.
     *
     * Generated from protobuf field <code>string use = 3;</code>
     */
    private $use = '';
    /**
     * Key ID.
     *
     * Generated from protobuf field <code>string kid = 4;</code>
     */
    private $kid = '';
    /**
     * Used for RSA keys.
     *
     * Generated from protobuf field <code>string n = 5;</code>
     */
    private $n = '';
    /**
     * Used for RSA keys.
     *
     * Generated from protobuf field <code>string e = 6;</code>
     */
    private $e = '';
    /**
     * Used for ECDSA keys.
     *
     * Generated from protobuf field <code>string x = 7;</code>
     */
    private $x = '';
    /**
     * Used for ECDSA keys.
     *
     * Generated from protobuf field <code>string y = 8;</code>
     */
    private $y = '';
    /**
     * Used for ECDSA keys.
     *
     * Generated from protobuf field <code>string crv = 9;</code>
     */
    private $crv = '';

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $kty
     *           Key Type.
     *     @type string $alg
     *           Algorithm.
     *     @type string $use
     *           Permitted uses for the public keys.
     *     @type string $kid
     *           Key ID.
     *     @type string $n
     *           Used for RSA keys.
     *     @type string $e
     *           Used for RSA keys.
     *     @type string $x
     *           Used for ECDSA keys.
     *     @type string $y
     *           Used for ECDSA keys.
     *     @type string $crv
     *           Used for ECDSA keys.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
        parent::__construct($data);
    }

    /**
     * Key Type.
     *
     * Generated from protobuf field <code>string kty = 1;</code>
     * @return string
     */
    public function getKty()
    {
        return $this->kty;
    }

    /**
     * Key Type.
     *
     * Generated from protobuf field <code>string kty = 1;</code>
     * @param string $var
     * @return $this
     */
    public function setKty($var)
    {
        GPBUtil::checkString($var, True);
        $this->kty = $var;

        return $this;
    }

    /**
     * Algorithm.
     *
     * Generated from protobuf field <code>string alg = 2;</code>
     * @return string
     */
    public function getAlg()
    {
        return $this->alg;
    }

    /**
     * Algorithm.
     *
     * Generated from protobuf field <code>string alg = 2;</code>
     * @param string $var
     * @return $this
     */
    public function setAlg($var)
    {
        GPBUtil::checkString($var, True);
        $this->alg = $var;

        return $this;
    }

    /**
     * Permitted uses for the public keys.
     *
     * Generated from protobuf field <code>string use = 3;</code>
     * @return string
     */
    public function getUse()
    {
        return $this->use;
    }

    /**
     * Permitted uses for the public keys.
     *
     * Generated from protobuf field <code>string use = 3;</code>
     * @param string $var
     * @return $this
     */
    public function setUse($var)
    {
        GPBUtil::checkString($var, True);
        $this->use = $var;

        return $this;
    }

    /**
     * Key ID.
     *
     * Generated from protobuf field <code>string kid = 4;</code>
     * @return string
     */
    public function getKid()
    {
        return $this->kid;
    }

    /**
     * Key ID.
     *
     * Generated from protobuf field <code>string kid = 4;</code>
     * @param string $var
     * @return $this
     */
    public function setKid($var)
    {
        GPBUtil::checkString($var, True);
        $this->kid = $var;

        return $this;
    }

    /**
     * Used for RSA keys.
     *
     * Generated from protobuf field <code>string n = 5;</code>
     * @return string
     */
    public function getN()
    {
        return $this->n;
    }

    /**
     * Used for RSA keys.
     *
     * Generated from protobuf field <code>string n = 5;</code>
     * @param string $var
     * @return $this
     */
    public function setN($var)
    {
        GPBUtil::checkString($var, True);
        $this->n = $var;

        return $this;
    }

    /**
     * Used for RSA keys.
     *
     * Generated from protobuf field <code>string e = 6;</code>
     * @return string
     */
    public function getE()
    {
        return $this->e;
    }

    /**
     * Used for RSA keys.
     *
     * Generated from protobuf field <code>string e = 6;</code>
     * @param string $var
     * @return $this
     */
    public function setE($var)
    {
        GPBUtil::checkString($var, True);
        $this->e = $var;

        return $this;
    }

    /**
     * Used for ECDSA keys.
     *
     * Generated from protobuf field <code>string x = 7;</code>
     * @return string
     */
    public function getX()
    {
        return $this->x;
    }

    /**
     * Used for ECDSA keys.
     *
     * Generated from protobuf field <code>string x = 7;</code>
     * @param string $var
     * @return $this
     */
    public function setX($var)
    {
        GPBUtil::checkString($var, True);
        $this->x = $var;

        return $this;
    }

    /**
     * Used for ECDSA keys.
     *
     * Generated from protobuf field <code>string y = 8;</code>
     * @return string
     */
    public function getY()
    {
        return $this->y;
    }

    /**
     * Used for ECDSA keys.
     *
     * Generated from protobuf field <code>string y = 8;</code>
     * @param string $var
     * @return $this
     */
    public function setY($var)
    {
        GPBUtil::checkString($var, True);
        $this->y = $var;

        return $this;
    }

    /**
     * Used for ECDSA keys.
     *
     * Generated from protobuf field <code>string crv = 9;</code>
     * @return string
     */
    public function getCrv()
    {
        return $this->crv;
    }

    /**
     * Used for ECDSA keys.
     *
     * Generated from protobuf field <code>string crv = 9;</code>
     * @param string $var
     * @return $this
     */
    public function setCrv($var)
    {
        GPBUtil::checkString($var, True);
        $this->crv = $var;

        return $this;
    }

}

