# Copyright 2023 Pixar
#
#    Licensed under the Apache License, Version 2.0 (the "Apache License")
#    with the following modification; you may not use this file except in
#    compliance with the Apache License and the following modification to it:
#    Section 6. Trademarks. is deleted and replaced with:
#
#    6. Trademarks. This License does not grant permission to use the trade
#       names, trademarks, service marks, or product names of the Licensor
#       and its affiliates, except as required to comply with Section 4(c) of
#       the License and to reproduce the content of the NOTICE file.
#
#    You may obtain a copy of the Apache License at
#
#        http://www.apache.org/licenses/LICENSE-2.0
#
#    Unless required by applicable law or agreed to in writing, software
#    distributed under the Apache License with the above modification is
#    distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
#    KIND, either express or implied. See the Apache License for the specific
#    language governing permissions and limitations under the Apache License.
#


module Jamf

  # This module is the namespace for all objects defined
  # in the OAPI JSON schema under the components => schemas key
  #
  module OAPISchemas


    # OAPI Object Model and Enums for: EraseDeviceCommand
    #
    #
    #
    # This class was automatically genereated from the api/schema
    # URL path on a Jamf Pro server version 10.50.0-t1693149930
    #
    # This class may be used directly, e.g instances of other classes may
    # use instances of this class as one of their own properties/attributes.
    #
    # It may also be used as a superclass when implementing Jamf Pro API
    # Resources in ruby-jss. The subclasses include appropriate mixins, and
    # should expand on the basic functionality provided here.
    #
    #
    # Container Objects:
    # Other object models that use this model as the value in one
    # of their attributes.
    #  
    #
    # Sub Objects:
    # Other object models used by this model's attributes.
    #  
    #
    # Endpoints and Privileges:
    # API endpoints and HTTP operations that use this object
    # model, and the Jamf Pro privileges needed to access them.
    #
    #
    #
    class EraseDeviceCommand < Jamf::OAPIObject

      # Enums used by this class or others

      OBLITERATION_BEHAVIOR_OPTIONS = [
        'Default',
        'DoNotObliterate',
        'ObliterateWithWarning',
        'Always'
      ]

      OAPI_PROPERTIES = {

        # If true, preserve the data plan on an iPhone or iPad with eSIM functionality, if one exists. This value is available in iOS 11 and later.
        # @!attribute preserveDataPlan
        #   @return [Boolean]
        preserveDataPlan: {
          class: :boolean
        },

        # If true, disable Proximity Setup on the next reboot and skip the pane in Setup Assistant. This value is available in iOS 11 and later. Prior to iOS 14, don’t use this option with any other option.
        # @!attribute disallowProximitySetup
        #   @return [Boolean]
        disallowProximitySetup: {
          class: :boolean
        },

        # The six-character PIN for Find My. This value is available in macOS 10.8 and later.
        # @!attribute pin
        #   @return [String]
        pin: {
          class: :string,
          min_length: 6,
          max_length: 6
        },

        # This key defines the fallback behavior for erasing a device.
        # @!attribute obliterationBehavior
        #   @return [String]
        obliterationBehavior: {
          class: :string,
          enum: OBLITERATION_BEHAVIOR_OPTIONS
        },

        # The configuration settings for Return to Service.
        # @!attribute returnToService
        #   @return [Hash{Symbol: Object}]
        returnToService: {
          class: :hash
        }

      } # end OAPI_PROPERTIES

    end # class EraseDeviceCommand

  end # module OAPISchemas

end # module Jamf