ory-am/hydra

View on GitHub
internal/httpclient/model_trust_o_auth2_jwt_grant_issuer.go

Summary

Maintainability
B
4 hrs
Test Coverage
/*
Ory Hydra API

Documentation for all of Ory Hydra's APIs.

API version:
Contact: hi@ory.sh
*/

// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.

package openapi

import (
    "bytes"
    "encoding/json"
    "fmt"
    "time"
)

// checks if the TrustOAuth2JwtGrantIssuer type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &TrustOAuth2JwtGrantIssuer{}

// TrustOAuth2JwtGrantIssuer Trust OAuth2 JWT Bearer Grant Type Issuer Request Body
type TrustOAuth2JwtGrantIssuer struct {
    // The \"allow_any_subject\" indicates that the issuer is allowed to have any principal as the subject of the JWT.
    AllowAnySubject *bool `json:"allow_any_subject,omitempty"`
    // The \"expires_at\" indicates, when grant will expire, so we will reject assertion from \"issuer\" targeting \"subject\".
    ExpiresAt time.Time `json:"expires_at"`
    // The \"issuer\" identifies the principal that issued the JWT assertion (same as \"iss\" claim in JWT).
    Issuer string     `json:"issuer"`
    Jwk    JsonWebKey `json:"jwk"`
    // The \"scope\" contains list of scope values (as described in Section 3.3 of OAuth 2.0 [RFC6749])
    Scope []string `json:"scope"`
    // The \"subject\" identifies the principal that is the subject of the JWT.
    Subject *string `json:"subject,omitempty"`
}

type _TrustOAuth2JwtGrantIssuer TrustOAuth2JwtGrantIssuer

// NewTrustOAuth2JwtGrantIssuer instantiates a new TrustOAuth2JwtGrantIssuer object
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
func NewTrustOAuth2JwtGrantIssuer(expiresAt time.Time, issuer string, jwk JsonWebKey, scope []string) *TrustOAuth2JwtGrantIssuer {
    this := TrustOAuth2JwtGrantIssuer{}
    this.ExpiresAt = expiresAt
    this.Issuer = issuer
    this.Jwk = jwk
    this.Scope = scope
    return &this
}

// NewTrustOAuth2JwtGrantIssuerWithDefaults instantiates a new TrustOAuth2JwtGrantIssuer object
// This constructor will only assign default values to properties that have it defined,
// but it doesn't guarantee that properties required by API are set
func NewTrustOAuth2JwtGrantIssuerWithDefaults() *TrustOAuth2JwtGrantIssuer {
    this := TrustOAuth2JwtGrantIssuer{}
    return &this
}

// GetAllowAnySubject returns the AllowAnySubject field value if set, zero value otherwise.
func (o *TrustOAuth2JwtGrantIssuer) GetAllowAnySubject() bool {
    if o == nil || IsNil(o.AllowAnySubject) {
        var ret bool
        return ret
    }
    return *o.AllowAnySubject
}

// GetAllowAnySubjectOk returns a tuple with the AllowAnySubject field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *TrustOAuth2JwtGrantIssuer) GetAllowAnySubjectOk() (*bool, bool) {
    if o == nil || IsNil(o.AllowAnySubject) {
        return nil, false
    }
    return o.AllowAnySubject, true
}

// HasAllowAnySubject returns a boolean if a field has been set.
func (o *TrustOAuth2JwtGrantIssuer) HasAllowAnySubject() bool {
    if o != nil && !IsNil(o.AllowAnySubject) {
        return true
    }

    return false
}

// SetAllowAnySubject gets a reference to the given bool and assigns it to the AllowAnySubject field.
func (o *TrustOAuth2JwtGrantIssuer) SetAllowAnySubject(v bool) {
    o.AllowAnySubject = &v
}

// GetExpiresAt returns the ExpiresAt field value
func (o *TrustOAuth2JwtGrantIssuer) GetExpiresAt() time.Time {
    if o == nil {
        var ret time.Time
        return ret
    }

    return o.ExpiresAt
}

// GetExpiresAtOk returns a tuple with the ExpiresAt field value
// and a boolean to check if the value has been set.
func (o *TrustOAuth2JwtGrantIssuer) GetExpiresAtOk() (*time.Time, bool) {
    if o == nil {
        return nil, false
    }
    return &o.ExpiresAt, true
}

// SetExpiresAt sets field value
func (o *TrustOAuth2JwtGrantIssuer) SetExpiresAt(v time.Time) {
    o.ExpiresAt = v
}

// GetIssuer returns the Issuer field value
func (o *TrustOAuth2JwtGrantIssuer) GetIssuer() string {
    if o == nil {
        var ret string
        return ret
    }

    return o.Issuer
}

// GetIssuerOk returns a tuple with the Issuer field value
// and a boolean to check if the value has been set.
func (o *TrustOAuth2JwtGrantIssuer) GetIssuerOk() (*string, bool) {
    if o == nil {
        return nil, false
    }
    return &o.Issuer, true
}

// SetIssuer sets field value
func (o *TrustOAuth2JwtGrantIssuer) SetIssuer(v string) {
    o.Issuer = v
}

// GetJwk returns the Jwk field value
func (o *TrustOAuth2JwtGrantIssuer) GetJwk() JsonWebKey {
    if o == nil {
        var ret JsonWebKey
        return ret
    }

    return o.Jwk
}

// GetJwkOk returns a tuple with the Jwk field value
// and a boolean to check if the value has been set.
func (o *TrustOAuth2JwtGrantIssuer) GetJwkOk() (*JsonWebKey, bool) {
    if o == nil {
        return nil, false
    }
    return &o.Jwk, true
}

// SetJwk sets field value
func (o *TrustOAuth2JwtGrantIssuer) SetJwk(v JsonWebKey) {
    o.Jwk = v
}

// GetScope returns the Scope field value
func (o *TrustOAuth2JwtGrantIssuer) GetScope() []string {
    if o == nil {
        var ret []string
        return ret
    }

    return o.Scope
}

// GetScopeOk returns a tuple with the Scope field value
// and a boolean to check if the value has been set.
func (o *TrustOAuth2JwtGrantIssuer) GetScopeOk() ([]string, bool) {
    if o == nil {
        return nil, false
    }
    return o.Scope, true
}

// SetScope sets field value
func (o *TrustOAuth2JwtGrantIssuer) SetScope(v []string) {
    o.Scope = v
}

// GetSubject returns the Subject field value if set, zero value otherwise.
func (o *TrustOAuth2JwtGrantIssuer) GetSubject() string {
    if o == nil || IsNil(o.Subject) {
        var ret string
        return ret
    }
    return *o.Subject
}

// GetSubjectOk returns a tuple with the Subject field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *TrustOAuth2JwtGrantIssuer) GetSubjectOk() (*string, bool) {
    if o == nil || IsNil(o.Subject) {
        return nil, false
    }
    return o.Subject, true
}

// HasSubject returns a boolean if a field has been set.
func (o *TrustOAuth2JwtGrantIssuer) HasSubject() bool {
    if o != nil && !IsNil(o.Subject) {
        return true
    }

    return false
}

// SetSubject gets a reference to the given string and assigns it to the Subject field.
func (o *TrustOAuth2JwtGrantIssuer) SetSubject(v string) {
    o.Subject = &v
}

func (o TrustOAuth2JwtGrantIssuer) MarshalJSON() ([]byte, error) {
    toSerialize, err := o.ToMap()
    if err != nil {
        return []byte{}, err
    }
    return json.Marshal(toSerialize)
}

func (o TrustOAuth2JwtGrantIssuer) ToMap() (map[string]interface{}, error) {
    toSerialize := map[string]interface{}{}
    if !IsNil(o.AllowAnySubject) {
        toSerialize["allow_any_subject"] = o.AllowAnySubject
    }
    toSerialize["expires_at"] = o.ExpiresAt
    toSerialize["issuer"] = o.Issuer
    toSerialize["jwk"] = o.Jwk
    toSerialize["scope"] = o.Scope
    if !IsNil(o.Subject) {
        toSerialize["subject"] = o.Subject
    }
    return toSerialize, nil
}

func (o *TrustOAuth2JwtGrantIssuer) UnmarshalJSON(data []byte) (err error) {
    // This validates that all required properties are included in the JSON object
    // by unmarshalling the object into a generic map with string keys and checking
    // that every required field exists as a key in the generic map.
    requiredProperties := []string{
        "expires_at",
        "issuer",
        "jwk",
        "scope",
    }

    allProperties := make(map[string]interface{})

    err = json.Unmarshal(data, &allProperties)

    if err != nil {
        return err
    }

    for _, requiredProperty := range requiredProperties {
        if _, exists := allProperties[requiredProperty]; !exists {
            return fmt.Errorf("no value given for required property %v", requiredProperty)
        }
    }

    varTrustOAuth2JwtGrantIssuer := _TrustOAuth2JwtGrantIssuer{}

    decoder := json.NewDecoder(bytes.NewReader(data))
    decoder.DisallowUnknownFields()
    err = decoder.Decode(&varTrustOAuth2JwtGrantIssuer)

    if err != nil {
        return err
    }

    *o = TrustOAuth2JwtGrantIssuer(varTrustOAuth2JwtGrantIssuer)

    return err
}

type NullableTrustOAuth2JwtGrantIssuer struct {
    value *TrustOAuth2JwtGrantIssuer
    isSet bool
}

func (v NullableTrustOAuth2JwtGrantIssuer) Get() *TrustOAuth2JwtGrantIssuer {
    return v.value
}

func (v *NullableTrustOAuth2JwtGrantIssuer) Set(val *TrustOAuth2JwtGrantIssuer) {
    v.value = val
    v.isSet = true
}

func (v NullableTrustOAuth2JwtGrantIssuer) IsSet() bool {
    return v.isSet
}

func (v *NullableTrustOAuth2JwtGrantIssuer) Unset() {
    v.value = nil
    v.isSet = false
}

func NewNullableTrustOAuth2JwtGrantIssuer(val *TrustOAuth2JwtGrantIssuer) *NullableTrustOAuth2JwtGrantIssuer {
    return &NullableTrustOAuth2JwtGrantIssuer{value: val, isSet: true}
}

func (v NullableTrustOAuth2JwtGrantIssuer) MarshalJSON() ([]byte, error) {
    return json.Marshal(v.value)
}

func (v *NullableTrustOAuth2JwtGrantIssuer) UnmarshalJSON(src []byte) error {
    v.isSet = true
    return json.Unmarshal(src, &v.value)
}