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

namespace Google\Cloud\Dataplex\V1\MetadataJob\ImportJobSpec;

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

/**
 * A boundary on the scope of impact that the metadata import job can have.
 *
 * Generated from protobuf message <code>google.cloud.dataplex.v1.MetadataJob.ImportJobSpec.ImportJobScope</code>
 */
class ImportJobScope extends \Google\Protobuf\Internal\Message
{
    /**
     * Required. The entry groups that are in scope for the import job,
     * specified as relative resource names in the format
     * `projects/{project_number_or_id}/locations/{location_id}/entryGroups/{entry_group_id}`.
     * Only entries and aspects that belong to the specified entry groups are
     * affected by the job.
     * The entry groups and the job must be in the same location.
     *
     * Generated from protobuf field <code>repeated string entry_groups = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {</code>
     */
    private $entry_groups;
    /**
     * Required. The entry types that are in scope for the import job,
     * specified as relative resource names in the format
     * `projects/{project_number_or_id}/locations/{location_id}/entryTypes/{entry_type_id}`.
     * The job modifies only the entries and aspects that belong to these
     * entry types.
     * If the metadata import file attempts to modify an entry whose type
     * isn't included in this list, the import job is halted before modifying
     * any entries or aspects.
     * The location of an entry type must either match the location of the
     * job, or the entry type must be global.
     *
     * Generated from protobuf field <code>repeated string entry_types = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {</code>
     */
    private $entry_types;
    /**
     * Optional. The aspect types that are in scope for the import job,
     * specified as relative resource names in the format
     * `projects/{project_number_or_id}/locations/{location_id}/aspectTypes/{aspect_type_id}`.
     * The job modifies only the aspects that belong to these aspect types.
     * This field is required when creating an aspect-only import job.
     * If the metadata import file attempts to modify an aspect whose type
     * isn't included in this list, the import job is halted before modifying
     * any entries or aspects.
     * The location of an aspect type must either match the location of the
     * job, or the aspect type must be global.
     *
     * Generated from protobuf field <code>repeated string aspect_types = 3 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = {</code>
     */
    private $aspect_types;
    /**
     * Optional. The glossaries that are in scope for the import job,
     * specified as relative resource names in the format
     * `projects/{project_number_or_id}/locations/{location_id}/glossaries/{glossary_id}`.
     * While importing Business Glossary entries, the user must
     * provide glossaries. While importing entries, the user does not have to
     * provide glossaries. If the metadata import file attempts to modify
     * Business Glossary entries whose glossary isn't included in this list,
     * the import job will skip those entries.
     * The location of a glossary must either match the location of the
     * job, or the glossary must be global.
     *
     * Generated from protobuf field <code>repeated string glossaries = 4 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = {</code>
     */
    private $glossaries;
    /**
     * Optional. The entry link types that are in scope for the import job,
     * specified as relative resource names in the format
     * `projects/{project_number_or_id}/locations/{location_id}/entryLinkTypes/{entry_link_type_id}`.
     * The job modifies only the entryLinks that belong to these entry link
     * types.
     * If the metadata import file attempts to create or delete an entry link
     * whose entry link type isn't included in this list, the import job will
     * skip those entry links.
     *
     * Generated from protobuf field <code>repeated string entry_link_types = 5 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    private $entry_link_types;
    /**
     * Optional. Defines the scope of entries that can be referenced in the
     * entry links.
     * Currently, projects are supported as valid scopes.
     * Format: `projects/{project_number_or_id}`
     * If the metadata import file attempts to create an entry link
     * which references an entry that is not in the scope, the import job will
     * skip that entry link.
     *
     * Generated from protobuf field <code>repeated string referenced_entry_scopes = 6 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    private $referenced_entry_scopes;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type array<string>|\Google\Protobuf\Internal\RepeatedField $entry_groups
     *           Required. The entry groups that are in scope for the import job,
     *           specified as relative resource names in the format
     *           `projects/{project_number_or_id}/locations/{location_id}/entryGroups/{entry_group_id}`.
     *           Only entries and aspects that belong to the specified entry groups are
     *           affected by the job.
     *           The entry groups and the job must be in the same location.
     *     @type array<string>|\Google\Protobuf\Internal\RepeatedField $entry_types
     *           Required. The entry types that are in scope for the import job,
     *           specified as relative resource names in the format
     *           `projects/{project_number_or_id}/locations/{location_id}/entryTypes/{entry_type_id}`.
     *           The job modifies only the entries and aspects that belong to these
     *           entry types.
     *           If the metadata import file attempts to modify an entry whose type
     *           isn't included in this list, the import job is halted before modifying
     *           any entries or aspects.
     *           The location of an entry type must either match the location of the
     *           job, or the entry type must be global.
     *     @type array<string>|\Google\Protobuf\Internal\RepeatedField $aspect_types
     *           Optional. The aspect types that are in scope for the import job,
     *           specified as relative resource names in the format
     *           `projects/{project_number_or_id}/locations/{location_id}/aspectTypes/{aspect_type_id}`.
     *           The job modifies only the aspects that belong to these aspect types.
     *           This field is required when creating an aspect-only import job.
     *           If the metadata import file attempts to modify an aspect whose type
     *           isn't included in this list, the import job is halted before modifying
     *           any entries or aspects.
     *           The location of an aspect type must either match the location of the
     *           job, or the aspect type must be global.
     *     @type array<string>|\Google\Protobuf\Internal\RepeatedField $glossaries
     *           Optional. The glossaries that are in scope for the import job,
     *           specified as relative resource names in the format
     *           `projects/{project_number_or_id}/locations/{location_id}/glossaries/{glossary_id}`.
     *           While importing Business Glossary entries, the user must
     *           provide glossaries. While importing entries, the user does not have to
     *           provide glossaries. If the metadata import file attempts to modify
     *           Business Glossary entries whose glossary isn't included in this list,
     *           the import job will skip those entries.
     *           The location of a glossary must either match the location of the
     *           job, or the glossary must be global.
     *     @type array<string>|\Google\Protobuf\Internal\RepeatedField $entry_link_types
     *           Optional. The entry link types that are in scope for the import job,
     *           specified as relative resource names in the format
     *           `projects/{project_number_or_id}/locations/{location_id}/entryLinkTypes/{entry_link_type_id}`.
     *           The job modifies only the entryLinks that belong to these entry link
     *           types.
     *           If the metadata import file attempts to create or delete an entry link
     *           whose entry link type isn't included in this list, the import job will
     *           skip those entry links.
     *     @type array<string>|\Google\Protobuf\Internal\RepeatedField $referenced_entry_scopes
     *           Optional. Defines the scope of entries that can be referenced in the
     *           entry links.
     *           Currently, projects are supported as valid scopes.
     *           Format: `projects/{project_number_or_id}`
     *           If the metadata import file attempts to create an entry link
     *           which references an entry that is not in the scope, the import job will
     *           skip that entry link.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Cloud\Dataplex\V1\Catalog::initOnce();
        parent::__construct($data);
    }

    /**
     * Required. The entry groups that are in scope for the import job,
     * specified as relative resource names in the format
     * `projects/{project_number_or_id}/locations/{location_id}/entryGroups/{entry_group_id}`.
     * Only entries and aspects that belong to the specified entry groups are
     * affected by the job.
     * The entry groups and the job must be in the same location.
     *
     * Generated from protobuf field <code>repeated string entry_groups = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getEntryGroups()
    {
        return $this->entry_groups;
    }

    /**
     * Required. The entry groups that are in scope for the import job,
     * specified as relative resource names in the format
     * `projects/{project_number_or_id}/locations/{location_id}/entryGroups/{entry_group_id}`.
     * Only entries and aspects that belong to the specified entry groups are
     * affected by the job.
     * The entry groups and the job must be in the same location.
     *
     * Generated from protobuf field <code>repeated string entry_groups = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {</code>
     * @param array<string>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setEntryGroups($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->entry_groups = $arr;

        return $this;
    }

    /**
     * Required. The entry types that are in scope for the import job,
     * specified as relative resource names in the format
     * `projects/{project_number_or_id}/locations/{location_id}/entryTypes/{entry_type_id}`.
     * The job modifies only the entries and aspects that belong to these
     * entry types.
     * If the metadata import file attempts to modify an entry whose type
     * isn't included in this list, the import job is halted before modifying
     * any entries or aspects.
     * The location of an entry type must either match the location of the
     * job, or the entry type must be global.
     *
     * Generated from protobuf field <code>repeated string entry_types = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getEntryTypes()
    {
        return $this->entry_types;
    }

    /**
     * Required. The entry types that are in scope for the import job,
     * specified as relative resource names in the format
     * `projects/{project_number_or_id}/locations/{location_id}/entryTypes/{entry_type_id}`.
     * The job modifies only the entries and aspects that belong to these
     * entry types.
     * If the metadata import file attempts to modify an entry whose type
     * isn't included in this list, the import job is halted before modifying
     * any entries or aspects.
     * The location of an entry type must either match the location of the
     * job, or the entry type must be global.
     *
     * Generated from protobuf field <code>repeated string entry_types = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {</code>
     * @param array<string>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setEntryTypes($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->entry_types = $arr;

        return $this;
    }

    /**
     * Optional. The aspect types that are in scope for the import job,
     * specified as relative resource names in the format
     * `projects/{project_number_or_id}/locations/{location_id}/aspectTypes/{aspect_type_id}`.
     * The job modifies only the aspects that belong to these aspect types.
     * This field is required when creating an aspect-only import job.
     * If the metadata import file attempts to modify an aspect whose type
     * isn't included in this list, the import job is halted before modifying
     * any entries or aspects.
     * The location of an aspect type must either match the location of the
     * job, or the aspect type must be global.
     *
     * Generated from protobuf field <code>repeated string aspect_types = 3 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = {</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getAspectTypes()
    {
        return $this->aspect_types;
    }

    /**
     * Optional. The aspect types that are in scope for the import job,
     * specified as relative resource names in the format
     * `projects/{project_number_or_id}/locations/{location_id}/aspectTypes/{aspect_type_id}`.
     * The job modifies only the aspects that belong to these aspect types.
     * This field is required when creating an aspect-only import job.
     * If the metadata import file attempts to modify an aspect whose type
     * isn't included in this list, the import job is halted before modifying
     * any entries or aspects.
     * The location of an aspect type must either match the location of the
     * job, or the aspect type must be global.
     *
     * Generated from protobuf field <code>repeated string aspect_types = 3 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = {</code>
     * @param array<string>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setAspectTypes($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->aspect_types = $arr;

        return $this;
    }

    /**
     * Optional. The glossaries that are in scope for the import job,
     * specified as relative resource names in the format
     * `projects/{project_number_or_id}/locations/{location_id}/glossaries/{glossary_id}`.
     * While importing Business Glossary entries, the user must
     * provide glossaries. While importing entries, the user does not have to
     * provide glossaries. If the metadata import file attempts to modify
     * Business Glossary entries whose glossary isn't included in this list,
     * the import job will skip those entries.
     * The location of a glossary must either match the location of the
     * job, or the glossary must be global.
     *
     * Generated from protobuf field <code>repeated string glossaries = 4 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = {</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getGlossaries()
    {
        return $this->glossaries;
    }

    /**
     * Optional. The glossaries that are in scope for the import job,
     * specified as relative resource names in the format
     * `projects/{project_number_or_id}/locations/{location_id}/glossaries/{glossary_id}`.
     * While importing Business Glossary entries, the user must
     * provide glossaries. While importing entries, the user does not have to
     * provide glossaries. If the metadata import file attempts to modify
     * Business Glossary entries whose glossary isn't included in this list,
     * the import job will skip those entries.
     * The location of a glossary must either match the location of the
     * job, or the glossary must be global.
     *
     * Generated from protobuf field <code>repeated string glossaries = 4 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = {</code>
     * @param array<string>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setGlossaries($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->glossaries = $arr;

        return $this;
    }

    /**
     * Optional. The entry link types that are in scope for the import job,
     * specified as relative resource names in the format
     * `projects/{project_number_or_id}/locations/{location_id}/entryLinkTypes/{entry_link_type_id}`.
     * The job modifies only the entryLinks that belong to these entry link
     * types.
     * If the metadata import file attempts to create or delete an entry link
     * whose entry link type isn't included in this list, the import job will
     * skip those entry links.
     *
     * Generated from protobuf field <code>repeated string entry_link_types = 5 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getEntryLinkTypes()
    {
        return $this->entry_link_types;
    }

    /**
     * Optional. The entry link types that are in scope for the import job,
     * specified as relative resource names in the format
     * `projects/{project_number_or_id}/locations/{location_id}/entryLinkTypes/{entry_link_type_id}`.
     * The job modifies only the entryLinks that belong to these entry link
     * types.
     * If the metadata import file attempts to create or delete an entry link
     * whose entry link type isn't included in this list, the import job will
     * skip those entry links.
     *
     * Generated from protobuf field <code>repeated string entry_link_types = 5 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param array<string>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setEntryLinkTypes($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->entry_link_types = $arr;

        return $this;
    }

    /**
     * Optional. Defines the scope of entries that can be referenced in the
     * entry links.
     * Currently, projects are supported as valid scopes.
     * Format: `projects/{project_number_or_id}`
     * If the metadata import file attempts to create an entry link
     * which references an entry that is not in the scope, the import job will
     * skip that entry link.
     *
     * Generated from protobuf field <code>repeated string referenced_entry_scopes = 6 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getReferencedEntryScopes()
    {
        return $this->referenced_entry_scopes;
    }

    /**
     * Optional. Defines the scope of entries that can be referenced in the
     * entry links.
     * Currently, projects are supported as valid scopes.
     * Format: `projects/{project_number_or_id}`
     * If the metadata import file attempts to create an entry link
     * which references an entry that is not in the scope, the import job will
     * skip that entry link.
     *
     * Generated from protobuf field <code>repeated string referenced_entry_scopes = 6 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param array<string>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setReferencedEntryScopes($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->referenced_entry_scopes = $arr;

        return $this;
    }

}


