HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/disk-apps/magento.bikenow.co/vendor/astock/stock-api-libphp/src/Request/License.php
<?php

/**
 * Copyright 2017 Adobe Systems Incorporated. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 */

namespace AdobeStock\Api\Request;

use \AdobeStock\Api\Exception\StockApi as StockApiException;
use \AdobeStock\Api\Models\LicenseReference;
use \AdobeStock\Api\Core\Constants as CoreConstants;

class License
{
    /**
     * Language location code
     * @var string
     */
    public $locale;
    
    /**
     * Asset's unique identifer
     * @var int
     */
    public $content_id;
    
    /**
     * The Adobe Stock licensing state for the asset
     * @var string
     */
    public $license;
    
    /**
     * The asset purchase state
     * @var string
     */
    public $state;
    
    /**
     * Panel version >=2.10 will send this parameter to get the "message_ccx"
     * field in the JSON response.
     * @var string
     */
    public $format;
    
    /**
     * Array of license references of type LicenseReference.
     * Must be in the POST body.
     * @var array|null of LicenseReference
     */
    public $license_reference;

    /**
     * Getter for Locale.
     * @return string Language location code.
     */
    public function getLocale(): string
    {
        return $this->locale;
    }

    /**
     * Setter for Locale.
     * @param string $locale Language location code.
     * @return License
     * @throws StockApiException if locale is empty.
     */
    public function setLocale(string $locale): License
    {
        if (!empty($locale)) {
            $this->locale = $locale;
        } else {
            throw StockApiException::withMessage('Locale cannot be empty string');
        }
        
        return $this;
    }

    /**
     * Getter for ContentId.
     * @return int|null Asset identifier for an existing asset.
     */
    public function getContentId(): ?int
    {
        return $this->content_id;
    }

    /**
     * Setter for ContentId.
     * @param int $content_id Unique identifier for an asset.
     * @return License
     * @throws StockApiException if content id is negative.
     */
    public function setContentId(int $content_id): License
    {
        if ($content_id < 0) {
            throw StockApiException::withMessage('Content Id cannot be negative');
        }
        
        $this->content_id = $content_id;
        return $this;
    }

    /**
     * Getter for LicenseState.
     * @return string|null The Adobe Stock licensing state for the asset of type
     * string.Not required for Member/Abondon api. If passed,
     * field will be ignored while calling this api.
     */
    public function getLicenseState(): ?string
    {
        return $this->license;
    }

    /**
     * Setter for LicenseState.
     * @param string $license_state
     * @return License
     * @throws StockApi exception
     */
    public function setLicenseState(string $license_state): License
    {
        $state = CoreConstants::getLicenseStateParams();
        
        if (array_key_exists($license_state, $state)) {
            $this->license = $state[$license_state];
        } else {
            throw StockApiException::withMessage('No such license state exists');
        }
        
        return $this;
    }

    /**
     * Getter for PurchaseState.
     * @return The asset purchase state from the Member/Profile results of type string
     */
    public function getPurchaseState(): string
    {
        return $this->state;
    }

    /**
     * Setter for PurchaseState.
     * @param string $purchase_state
     * @return Object of LicenseRequest
     * @throws IllegalArgumentException if purchase state is set to null.
     */
    public function setPurchaseState(string $purchase_state): License
    {
        $state = CoreConstants::getPurchaseStateParams();
        
        if (array_key_exists($purchase_state, $state)) {
            $this->state = $state[$purchase_state];
        } else {
            throw StockApiException::withMessage('No such purchase state exists');
        }
        
        return $this;
    }

    /**
     * Getter for format
     * @return bool Format
     */
    public function getFormat(): bool
    {
        if ($this->format === 'message_ccx') {
            return true;
        } else {
            return false;
        }
    }

    /**
     * @param bool $val sets format to message_ccx if it is true else null.
     * @return License
     * @throws StockApiException if null value is passed.
     */
    public function setFormat(bool $val): License
    {
        if ($val === true) {
            $this->format = 'message_ccx';
        }
        
        return $this;
    }

    /**
     * Gets array of licensing references having id and values pair of type LicenseReference.
     * @return array|null
     */
    public function getLicenseReference(): ?array
    {
        return $this->license_reference;
    }

    /**
     * @param array $val
     * @return License
     */
    public function setLicenseReference(array $val): License
    {
        if (empty($val)) {
            throw StockApiException::withMessage('LicenseReference array cannot be empty');
        }
        
        foreach ($val as $index => $key) {
            $this->license_reference [$index] = new LicenseReference($key);
        }
        
        return $this;
    }
}