{
  "description": "MonitoringSchedule is the Schema for the MonitoringSchedules API",
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
      "type": "string"
    },
    "kind": {
      "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "description": "MonitoringScheduleSpec defines the desired state of MonitoringSchedule.\n\nA schedule for a model monitoring job. For information about model monitor,\nsee Amazon SageMaker Model Monitor (https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor.html).",
      "properties": {
        "monitoringScheduleConfig": {
          "description": "The configuration object that specifies the monitoring schedule and defines\nthe monitoring job.",
          "properties": {
            "monitoringJobDefinition": {
              "description": "Defines the monitoring job.",
              "properties": {
                "baselineConfig": {
                  "description": "Configuration for monitoring constraints and monitoring statistics. These\nbaseline resources are compared against the results of the current job from\nthe series of jobs scheduled to collect data periodically.",
                  "properties": {
                    "baseliningJobName": {
                      "type": "string"
                    },
                    "constraintsResource": {
                      "description": "The constraints resource for a monitoring job.",
                      "properties": {
                        "s3URI": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "statisticsResource": {
                      "description": "The statistics resource for a monitoring job.",
                      "properties": {
                        "s3URI": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "environment": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "type": "object"
                },
                "monitoringAppSpecification": {
                  "description": "Container image configuration object for the monitoring job.",
                  "properties": {
                    "containerArguments": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "containerEntrypoint": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "imageURI": {
                      "type": "string"
                    },
                    "postAnalyticsProcessorSourceURI": {
                      "type": "string"
                    },
                    "recordPreprocessorSourceURI": {
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "monitoringInputs": {
                  "items": {
                    "description": "The inputs for a monitoring job.",
                    "properties": {
                      "endpointInput": {
                        "description": "Input object for the endpoint",
                        "properties": {
                          "endTimeOffset": {
                            "type": "string"
                          },
                          "endpointName": {
                            "type": "string"
                          },
                          "excludeFeaturesAttribute": {
                            "type": "string"
                          },
                          "featuresAttribute": {
                            "type": "string"
                          },
                          "inferenceAttribute": {
                            "type": "string"
                          },
                          "localPath": {
                            "type": "string"
                          },
                          "probabilityAttribute": {
                            "type": "string"
                          },
                          "probabilityThresholdAttribute": {
                            "type": "number"
                          },
                          "s3DataDistributionType": {
                            "type": "string"
                          },
                          "s3InputMode": {
                            "type": "string"
                          },
                          "startTimeOffset": {
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "monitoringOutputConfig": {
                  "description": "The output configuration for monitoring jobs.",
                  "properties": {
                    "kmsKeyID": {
                      "type": "string"
                    },
                    "monitoringOutputs": {
                      "items": {
                        "description": "The output object for a monitoring job.",
                        "properties": {
                          "s3Output": {
                            "description": "Information about where and how you want to store the results of a monitoring\njob.",
                            "properties": {
                              "localPath": {
                                "type": "string"
                              },
                              "s3URI": {
                                "type": "string"
                              },
                              "s3UploadMode": {
                                "type": "string"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "type": "array"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "monitoringResources": {
                  "description": "Identifies the resources to deploy for a monitoring job.",
                  "properties": {
                    "clusterConfig": {
                      "description": "Configuration for the cluster used to run model monitoring jobs.",
                      "properties": {
                        "instanceCount": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "instanceType": {
                          "type": "string"
                        },
                        "volumeKMSKeyID": {
                          "type": "string"
                        },
                        "volumeSizeInGB": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "networkConfig": {
                  "description": "Networking options for a job, such as network traffic encryption between\ncontainers, whether to allow inbound and outbound network calls to and from\ncontainers, and the VPC subnets and security groups to use for VPC-enabled\njobs.",
                  "properties": {
                    "enableInterContainerTrafficEncryption": {
                      "type": "boolean"
                    },
                    "enableNetworkIsolation": {
                      "type": "boolean"
                    },
                    "vpcConfig": {
                      "description": "Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker jobs,\nhosted models, and compute resources have access to. You can control access\nto and from your resources by configuring a VPC. For more information, see\nGive SageMaker Access to Resources in your Amazon VPC (https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html).",
                      "properties": {
                        "securityGroupIDs": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "subnets": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "roleARN": {
                  "type": "string"
                },
                "stoppingCondition": {
                  "description": "A time limit for how long the monitoring job is allowed to run before stopping.",
                  "properties": {
                    "maxRuntimeInSeconds": {
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "monitoringJobDefinitionName": {
              "type": "string"
            },
            "monitoringType": {
              "type": "string"
            },
            "scheduleConfig": {
              "description": "Configuration details about the monitoring schedule.",
              "properties": {
                "dataAnalysisEndTime": {
                  "type": "string"
                },
                "dataAnalysisStartTime": {
                  "type": "string"
                },
                "scheduleExpression": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "monitoringScheduleName": {
          "description": "The name of the monitoring schedule. The name must be unique within an Amazon\nWeb Services Region within an Amazon Web Services account.\n\nRegex Pattern: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}$`",
          "type": "string"
        },
        "tags": {
          "description": "(Optional) An array of key-value pairs. For more information, see Using Cost\nAllocation Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL)\nin the Amazon Web Services Billing and Cost Management User Guide.",
          "items": {
            "description": "A tag object that consists of a key and an optional value, used to manage\nmetadata for SageMaker Amazon Web Services resources.\n\nYou can add tags to notebook instances, training jobs, hyperparameter tuning\njobs, batch transform jobs, models, labeling jobs, work teams, endpoint configurations,\nand endpoints. For more information on adding tags to SageMaker resources,\nsee AddTags (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html).\n\nFor more information on adding metadata to your Amazon Web Services resources\nwith tagging, see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).\nFor advice on best practices for managing Amazon Web Services resources with\ntagging, see Tagging Best Practices: Implement an Effective Amazon Web Services\nResource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf).",
            "properties": {
              "key": {
                "type": "string"
              },
              "value": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        }
      },
      "required": [
        "monitoringScheduleConfig",
        "monitoringScheduleName"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "MonitoringScheduleStatus defines the observed state of MonitoringSchedule",
      "properties": {
        "ackResourceMetadata": {
          "description": "All CRs managed by ACK have a common `Status.ACKResourceMetadata` member\nthat is used to contain resource sync state, account ownership,\nconstructed ARN for the resource",
          "properties": {
            "arn": {
              "description": "ARN is the Amazon Resource Name for the resource. This is a\nglobally-unique identifier and is set only by the ACK service controller\nonce the controller has orchestrated the creation of the resource OR\nwhen it has verified that an \"adopted\" resource (a resource where the\nARN annotation was set by the Kubernetes user on the CR) exists and\nmatches the supplied CR's Spec field values.\nhttps://github.com/aws/aws-controllers-k8s/issues/270",
              "type": "string"
            },
            "ownerAccountID": {
              "description": "OwnerAccountID is the AWS Account ID of the account that owns the\nbackend AWS service API resource.",
              "type": "string"
            },
            "region": {
              "description": "Region is the AWS region in which the resource exists or will exist.",
              "type": "string"
            }
          },
          "required": [
            "ownerAccountID",
            "region"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "conditions": {
          "description": "All CRs managed by ACK have a common `Status.Conditions` member that\ncontains a collection of `ackv1alpha1.Condition` objects that describe\nthe various terminal states of the CR and its backend AWS service API\nresource",
          "items": {
            "description": "Condition is the common struct used by all CRDs managed by ACK service\ncontrollers to indicate terminal states  of the CR and its backend AWS\nservice API resource",
            "properties": {
              "lastTransitionTime": {
                "description": "Last time the condition transitioned from one status to another.",
                "format": "date-time",
                "type": "string"
              },
              "message": {
                "description": "A human readable message indicating details about the transition.",
                "type": "string"
              },
              "reason": {
                "description": "The reason for the condition's last transition.",
                "type": "string"
              },
              "status": {
                "description": "Status of the condition, one of True, False, Unknown.",
                "type": "string"
              },
              "type": {
                "description": "Type is the type of the Condition",
                "type": "string"
              }
            },
            "required": [
              "status",
              "type"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "creationTime": {
          "description": "The time at which the monitoring job was created.",
          "format": "date-time",
          "type": "string"
        },
        "failureReason": {
          "description": "A string, up to one KB in size, that contains the reason a monitoring job\nfailed, if it failed.",
          "type": "string"
        },
        "lastModifiedTime": {
          "description": "The time at which the monitoring job was last modified.",
          "format": "date-time",
          "type": "string"
        },
        "lastMonitoringExecutionSummary": {
          "description": "Describes metadata on the last execution to run, if there was one.",
          "properties": {
            "creationTime": {
              "format": "date-time",
              "type": "string"
            },
            "endpointName": {
              "type": "string"
            },
            "failureReason": {
              "type": "string"
            },
            "lastModifiedTime": {
              "format": "date-time",
              "type": "string"
            },
            "monitoringExecutionStatus": {
              "type": "string"
            },
            "monitoringJobDefinitionName": {
              "type": "string"
            },
            "monitoringScheduleName": {
              "type": "string"
            },
            "monitoringType": {
              "type": "string"
            },
            "processingJobARN": {
              "type": "string"
            },
            "scheduledTime": {
              "format": "date-time",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "monitoringScheduleStatus": {
          "description": "The status of an monitoring job.",
          "type": "string"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
