content: /*
   * Licensed to the Apache Software Foundation (ASF) under one or more
   * contributor license agreements.  See the NOTICE file distributed with
   * this work for additional information regarding copyright ownership.
   * The ASF licenses this file 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
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  /*
   * Salesforce DTO generated by camel-salesforce-maven-plugin.
   */
  package org.apache.camel.component.salesforce.dto.generated;
  
  import java.util.ArrayList;
  import java.util.List;
  
  import com.fasterxml.jackson.annotation.JsonProperty;
  import jakarta.annotation.Generated;
  import org.apache.camel.component.salesforce.api.dto.AbstractDescribedSObjectBase;
  import org.apache.camel.component.salesforce.api.dto.SObjectDescription;
  import org.apache.camel.component.salesforce.api.dto.SObjectDescriptionUrls;
  import org.apache.camel.component.salesforce.api.dto.SObjectField;
  
  /**
   * Salesforce DTO for SObject Folder
   */
  @Generated("org.apache.camel.maven.CamelSalesforceMojo")
  public class Folder extends AbstractDescribedSObjectBase {
  
      public Folder() {
          getAttributes().setType("Folder");
      }
  
      private static final SObjectDescription DESCRIPTION = createSObjectDescription();
  
      private String ParentId;
  
      @JsonProperty("ParentId")
      public String getParentId() {
          return this.ParentId;
      }
  
      @JsonProperty("ParentId")
      public void setParentId(String ParentId) {
          this.ParentId = ParentId;
      }
  
      private String DeveloperName;
  
      @JsonProperty("DeveloperName")
      public String getDeveloperName() {
          return this.DeveloperName;
      }
  
      @JsonProperty("DeveloperName")
      public void setDeveloperName(String DeveloperName) {
          this.DeveloperName = DeveloperName;
      }
  
      private String AccessType;
  
      @JsonProperty("AccessType")
      public String getAccessType() {
          return this.AccessType;
      }
  
      @JsonProperty("AccessType")
      public void setAccessType(String AccessType) {
          this.AccessType = AccessType;
      }
  
      private Boolean IsReadonly;
  
      @JsonProperty("IsReadonly")
      public Boolean getIsReadonly() {
          return this.IsReadonly;
      }
  
      @JsonProperty("IsReadonly")
      public void setIsReadonly(Boolean IsReadonly) {
          this.IsReadonly = IsReadonly;
      }
  
      private String Type;
  
      @JsonProperty("Type")
      public String getType() {
          return this.Type;
      }
  
      @JsonProperty("Type")
      public void setType(String Type) {
          this.Type = Type;
      }
  
      private String NamespacePrefix;
  
      @JsonProperty("NamespacePrefix")
      public String getNamespacePrefix() {
          return this.NamespacePrefix;
      }
  
      @JsonProperty("NamespacePrefix")
      public void setNamespacePrefix(String NamespacePrefix) {
          this.NamespacePrefix = NamespacePrefix;
      }
  
      private AbstractDescribedSObjectBase CreatedBy;
  
      @JsonProperty("CreatedBy")
      public AbstractDescribedSObjectBase getCreatedBy() {
          return this.CreatedBy;
      }
  
      @JsonProperty("CreatedBy")
      public void setCreatedBy(AbstractDescribedSObjectBase CreatedBy) {
          this.CreatedBy = CreatedBy;
      }
      private AbstractDescribedSObjectBase LastModifiedBy;
  
      @JsonProperty("LastModifiedBy")
      public AbstractDescribedSObjectBase getLastModifiedBy() {
          return this.LastModifiedBy;
      }
  
      @JsonProperty("LastModifiedBy")
      public void setLastModifiedBy(AbstractDescribedSObjectBase LastModifiedBy) {
          this.LastModifiedBy = LastModifiedBy;
      }
      private QueryRecordsFolder SubFolders;
  
      @JsonProperty("SubFolders")
      public QueryRecordsFolder getSubFolders() {
          return SubFolders;
      }
  
      @JsonProperty("SubFolders")
      public void setSubFolders(QueryRecordsFolder SubFolders) {
          this.SubFolders = SubFolders;
      }
  
      @Override
      public final SObjectDescription description() {
          return DESCRIPTION;
      }
  
      private static SObjectDescription createSObjectDescription() {
          final SObjectDescription description = new SObjectDescription();
  
  
  
          final List<SObjectField> fields1 = new ArrayList<>();
          description.setFields(fields1);
  
          final SObjectField sObjectField1 = createField("Id", "Folder ID", "id", "tns:ID", 18, false, false, false, false, false, false, true);
          fields1.add(sObjectField1);
          final SObjectField sObjectField2 = createField("ParentId", "Folder ID", "reference", "tns:ID", 18, false, true, false, false, false, false, false);
          fields1.add(sObjectField2);
          final SObjectField sObjectField3 = createField("Name", "Name", "string", "xsd:string", 40, false, false, true, false, false, false, true);
          fields1.add(sObjectField3);
          final SObjectField sObjectField4 = createField("DeveloperName", "Folder Unique Name", "string", "xsd:string", 80, false, true, false, false, false, false, false);
          fields1.add(sObjectField4);
          final SObjectField sObjectField5 = createField("AccessType", "Access Type", "picklist", "xsd:string", 40, false, false, false, false, false, false, false);
          fields1.add(sObjectField5);
          final SObjectField sObjectField6 = createField("IsReadonly", "Read Only", "boolean", "xsd:boolean", 0, false, false, false, false, false, false, false);
          fields1.add(sObjectField6);
          final SObjectField sObjectField7 = createField("Type", "Type", "picklist", "xsd:string", 40, false, false, false, false, false, false, false);
          fields1.add(sObjectField7);
          final SObjectField sObjectField8 = createField("NamespacePrefix", "Namespace Prefix", "string", "xsd:string", 15, false, true, false, false, false, false, false);
          fields1.add(sObjectField8);
          final SObjectField sObjectField9 = createField("CreatedDate", "Created Date", "datetime", "xsd:dateTime", 0, false, false, false, false, false, false, false);
          fields1.add(sObjectField9);
          final SObjectField sObjectField10 = createField("CreatedById", "Created By ID", "reference", "tns:ID", 18, false, false, false, false, false, false, false);
          fields1.add(sObjectField10);
          final SObjectField sObjectField11 = createField("LastModifiedDate", "Last Modified Date", "datetime", "xsd:dateTime", 0, false, false, false, false, false, false, false);
          fields1.add(sObjectField11);
          final SObjectField sObjectField12 = createField("LastModifiedById", "Last Modified By ID", "reference", "tns:ID", 18, false, false, false, false, false, false, false);
          fields1.add(sObjectField12);
          final SObjectField sObjectField13 = createField("SystemModstamp", "System Modstamp", "datetime", "xsd:dateTime", 0, false, false, false, false, false, false, false);
          fields1.add(sObjectField13);
  
          description.setLabel("Folder");
          description.setLabelPlural("Folders");
          description.setName("Folder");
  
          final SObjectDescriptionUrls sObjectDescriptionUrls1 = new SObjectDescriptionUrls();
          sObjectDescriptionUrls1.setDescribe("/services/data/v59.0/sobjects/Folder/describe");
          sObjectDescriptionUrls1.setRowTemplate("/services/data/v59.0/sobjects/Folder/{ID}");
          sObjectDescriptionUrls1.setSobject("/services/data/v59.0/sobjects/Folder");
          description.setUrls(sObjectDescriptionUrls1);
  
          return description;
      }
  }
  